Guías de Remisión
Guías de Remisión
Section titled “Guías de Remisión”Dominio: https://test-api-factura.edw-dev.com
Dominio: https://api-financiero.e-dinky.com
Las guías de remisión son documentos electrónicos que amparan el traslado de mercaderías desde un punto de origen hasta un punto de destino, ya sea por venta, consignación, devolución, préstamo, o cualquier otro motivo que requiera el movimiento físico de bienes.
Información General
Section titled “Información General”- Código SRI:
06
- Tipo de documento: Guía de Remisión
- Uso: Amparar traslado de mercaderías
- Destinatario requerido: Sí
- Documento de soporte: Opcional (factura, orden, etc.)
- Emisión automática: Opcional
Endpoint
Section titled “Endpoint”POST /api/v1/documents/create
Headers Requeridos
Section titled “Headers Requeridos”Content-Type: application/jsonAccept: application/jsonAuthorization: Bearer {token}
Parámetros Específicos
Section titled “Parámetros Específicos”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
sri_code_document | string | Sí | Debe ser "06" para guías de remisión |
send_to_emit | boolean | No | Si se debe emitir automáticamente al SRI |
recipient | object | Sí | Información del destinatario |
document | object | Sí | Información del documento y traslado |
items | array | Sí | Array de productos a trasladar |
transport | object | Sí | Información del transporte |
aditional_fields | array | No | Campos adicionales |
Estructura del Documento
Section titled “Estructura del Documento”{ "date": "2024-01-15", "establishment": "001", "point_of_emission": "001", "start_date_transport": "2024-01-15", "end_date_transport": "2024-01-16", "transport_reason": "Venta", "origin_address": "Quito, Pichincha", "destination_address": "Guayaquil, Guayas"}
Estructura del Transporte
Section titled “Estructura del Transporte”{ "transport": { "driver_identification": "0987654321", "driver_name": "Carlos Transportista", "vehicle_plate": "ABC-1234", "transport_reason": "Venta" }}
Motivos de Traslado Comunes
Section titled “Motivos de Traslado Comunes”Código | Descripción | Uso |
---|---|---|
01 | Venta | Entrega por venta |
02 | Consignación | Mercadería en consignación |
03 | Devolución | Devolución de productos |
04 | Préstamo | Préstamo temporal |
05 | Traslado entre establecimientos | Movimiento interno |
06 | Transformación | Para procesamiento |
07 | Exportación | Mercadería para exportar |
08 | Otros | Otros motivos |
Ejemplos de Implementación
Section titled “Ejemplos de Implementación”Guía de Remisión Simple
Section titled “Guía de Remisión Simple”Solicitud
Section titled “Solicitud”{ "sri_code_document": "06", "send_to_emit": true, "recipient": { "identification_number": "0123456789", "name": "Juan", "lastname": "Pérez", "identification_type": "CEDULA", "address": "Guayaquil, Guayas" }, "document": { "date": "2024-01-15", "establishment": "001", "point_of_emission": "001", "start_date_transport": "2024-01-15", "end_date_transport": "2024-01-16", "transport_reason": "01", "origin_address": "Quito, Pichincha", "destination_address": "Guayaquil, Guayas" }, "items": [ { "code": "PROD-001", "description": "Producto para entrega", "quantity": 5, "unit": "UND" } ], "transport": { "driver_identification": "0987654321", "driver_name": "Carlos Transportista", "vehicle_plate": "ABC-1234", "transport_reason": "Venta" }}
Respuesta Exitosa (201)
Section titled “Respuesta Exitosa (201)”{ "message": "Documento creado exitosamente", "status": "CREATED", "payload": { "id": 123456792, "environment": "PROD", "number": 1, "date": "2024-01-15", "type": "waybill", "recipient": { "id": 987654323, "full_name": "Juan Pérez", "identification_type": "cedula", "identification_number": "0123456789" }, "sri": { "access_key": "1501202406012345678900110010010000000011234567890", "status": "AUTORIZADO", "sequential_number": "000000001", "establishment": "001", "point_emission": "001", "document_number": "001-001-000000001", "type_document": "GUIA REMISION", "code_document": "06" }, "transport": { "start_date": "2024-01-15", "end_date": "2024-01-16", "reason": "01", "reason_description": "Venta", "origin_address": "Quito, Pichincha", "destination_address": "Guayaquil, Guayas", "driver": { "identification": "0987654321", "name": "Carlos Transportista" }, "vehicle": { "plate": "ABC-1234" } }, "items": [ { "position": 1, "code": "PROD-001", "description": "Producto para entrega", "quantity": "5.00", "unit": "UND" } ] }}
Guía de Remisión con Documento de Soporte
Section titled “Guía de Remisión con Documento de Soporte”Solicitud
Section titled “Solicitud”{ "sri_code_document": "06", "recipient": { "identification_number": "1234567890001", "name": "Empresa", "lastname": "Comercial S.A.", "identification_type": "RUC", "address": "Cuenca, Azuay" }, "document": { "date": "2024-10-09", "sri_establishment": "001", "sri_point_emi": "004", "start_date_transport": "2024-10-09", "end_date_transport": "2024-10-10", "transport_reason": "01", "origin_address": "Quito, Pichincha", "destination_address": "Cuenca, Azuay", "support_code_document": "01", "support_date": "2024-10-08", "support_document_number": "001-001-000000025" }, "items": [ { "code": "PROD-001", "description": "Producto A", "quantity": 10, "unit": "UND" }, { "code": "PROD-002", "description": "Producto B", "quantity": 5, "unit": "KG" } ], "transport": { "driver_identification": "1234567890", "driver_name": "María Conductora", "vehicle_plate": "XYZ-5678", "transport_reason": "Entrega por venta" }, "aditional_fields": [ { "key": "Observaciones", "value": "Mercadería frágil - manejar con cuidado", "type": "custom" } ]}
Respuesta con Documento de Soporte (201)
Section titled “Respuesta con Documento de Soporte (201)”{ "message": "Documento creado", "status": "CREATED", "payload": { "id": 1339329973, "environment": "TEST", "number": 4, "date": "2024-10-09", "status": "draft", "type": "waybill", "recipient": { "id": 61247347, "full_name": "Empresa Comercial S.A.", "identification_type": "ruc", "identification_number": "1234567890001" }, "sri": { "establishment": "001", "point_emi": "004", "type_document": "GUIA REMISION", "title_document": "Guía de remisión", "code_document": "06" }, "support": { "code_document": "01", "document_number": "001-001-000000025", "date": "2024-10-08" }, "transport": { "start_date": "2024-10-09", "end_date": "2024-10-10", "reason": "01", "reason_description": "Venta", "origin_address": "Quito, Pichincha", "destination_address": "Cuenca, Azuay", "driver": { "identification": "1234567890", "name": "María Conductora" }, "vehicle": { "plate": "XYZ-5678" } }, "items": [ { "position": 1, "code": "PROD-001", "description": "Producto A", "quantity": "10.00", "unit": "UND" }, { "position": 2, "code": "PROD-002", "description": "Producto B", "quantity": "5.00", "unit": "KG" } ], "additional_info": { "observations": "Mercadería frágil - manejar con cuidado" } }}
Ejemplos de Código
Section titled “Ejemplos de Código”curl -X POST "https://dev-facturacion.e-dinky.test/api/v1/documents/create" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "sri_code_document": "06", "send_to_emit": true, "recipient": { "identification_number": "0123456789", "name": "Juan", "lastname": "Pérez", "identification_type": "CEDULA", "email": "[email protected]", "address": "Guayaquil, Guayas" }, "document": { "date": "2024-01-15", "establishment": "001", "point_of_emission": "001", "start_date_transport": "2024-01-15", "end_date_transport": "2024-01-16", "transport_reason": "01", "origin_address": "Quito, Pichincha", "destination_address": "Guayaquil, Guayas" }, "items": [ { "code": "PROD-001", "description": "Producto para entrega", "quantity": 5, "unit": "UND" } ], "transport": { "driver_identification": "0987654321", "driver_name": "Carlos Transportista", "vehicle_plate": "ABC-1234", "transport_reason": "Venta" } }'
<?php
use Illuminate\Support\Facades\Http;
$token = 'your-api-token';
$response = Http::withHeaders([ 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $token,])->post('https://dev-facturacion.e-dinky.test/api/v1/documents/create', [ 'sri_code_document' => '06', 'send_to_emit' => true, 'recipient' => [ 'identification_number' => '0123456789', 'name' => 'Juan', 'lastname' => 'Pérez', 'identification_type' => 'CEDULA', 'address' => 'Guayaquil, Guayas' ], 'document' => [ 'date' => '2024-01-15', 'establishment' => '001', 'point_of_emission' => '001', 'start_date_transport' => '2024-01-15', 'end_date_transport' => '2024-01-16', 'transport_reason' => '01', 'origin_address' => 'Quito, Pichincha', 'destination_address' => 'Guayaquil, Guayas' ], 'items' => [ [ 'code' => 'PROD-001', 'description' => 'Producto para entrega', 'quantity' => 5, 'unit' => 'UND' ] ], 'transport' => [ 'driver_identification' => '0987654321', 'driver_name' => 'Carlos Transportista', 'vehicle_plate' => 'ABC-1234', 'transport_reason' => 'Venta' ]]);
if ($response->successful()) { $document = $response->json(); echo "Guía de remisión creada: " . $document['payload']['id']; echo "Número de documento: " . $document['payload']['sri']['document_number']; echo "Destinatario: " . $document['payload']['recipient']['full_name']; echo "Fecha de transporte: " . $document['payload']['transport']['start_date'];} else { echo "Error: " . $response->body();}
const axios = require('axios');
const createWaybill = async () => { const token = 'your-api-token';
const config = { method: 'post', url: 'https://dev-facturacion.e-dinky.test/api/v1/documents/create', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${token}` }, data: { sri_code_document: '06', send_to_emit: true, recipient: { identification_number: '0123456789', name: 'Juan', lastname: 'Pérez', identification_type: 'CEDULA', address: 'Guayaquil, Guayas' }, document: { date: '2024-01-15', establishment: '001', point_of_emission: '001', start_date_transport: '2024-01-15', end_date_transport: '2024-01-16', transport_reason: '01', origin_address: 'Quito, Pichincha', destination_address: 'Guayaquil, Guayas' }, items: [ { code: 'PROD-001', description: 'Producto para entrega', quantity: 5, unit: 'UND' } ], transport: { driver_identification: '0987654321', driver_name: 'Carlos Transportista', vehicle_plate: 'ABC-1234', transport_reason: 'Venta' } } };
try { const response = await axios(config); console.log('Guía de remisión creada:', response.data.payload.id); console.log('Número de documento:', response.data.payload.sri.document_number); console.log('Destinatario:', response.data.payload.recipient.full_name); console.log('Fecha de transporte:', response.data.payload.transport.start_date); return response.data; } catch (error) { console.error('Error:', error.response?.data || error.message); throw error; }};
// UsocreateWaybill() .then(result => console.log('Éxito:', result)) .catch(error => console.error('Error:', error));
Tipos de Guías de Remisión
Section titled “Tipos de Guías de Remisión”1. Por Venta
Section titled “1. Por Venta”- Código:
01
- Uso: Entrega de mercadería vendida
- Documento soporte: Factura
- Características: Transfiere propiedad
2. Por Consignación
Section titled “2. Por Consignación”- Código:
02
- Uso: Mercadería en consignación
- Documento soporte: Contrato de consignación
- Características: No transfiere propiedad
3. Por Devolución
Section titled “3. Por Devolución”- Código:
03
- Uso: Devolución de productos
- Documento soporte: Factura original
- Características: Retorno de mercadería
4. Por Préstamo
Section titled “4. Por Préstamo”- Código:
04
- Uso: Préstamo temporal
- Documento soporte: Contrato de préstamo
- Características: Retorno obligatorio
5. Traslado Interno
Section titled “5. Traslado Interno”- Código:
05
- Uso: Entre establecimientos propios
- Documento soporte: Orden interna
- Características: Mismo propietario
6. Para Transformación
Section titled “6. Para Transformación”- Código:
06
- Uso: Procesamiento o manufactura
- Documento soporte: Orden de trabajo
- Características: Cambio de estado
7. Para Exportación
Section titled “7. Para Exportación”- Código:
07
- Uso: Mercadería para exportar
- Documento soporte: Declaración aduanera
- Características: Salida del país
8. Otros Motivos
Section titled “8. Otros Motivos”- Código:
08
- Uso: Otros motivos específicos
- Documento soporte: Según caso
- Características: Casos especiales
Validaciones Específicas
Section titled “Validaciones Específicas”Destinatario (Recipient)
Section titled “Destinatario (Recipient)”- Identificación: Debe ser válida según tipo
- Tipo: CEDULA, RUC, PASAPORTE
- Dirección: Debe coincidir con destino
- Email: Requerido para notificaciones
Transporte
Section titled “Transporte”- Conductor: Identificación válida
- Vehículo: Placa válida
- Fechas: Lógicas y coherentes
- Direcciones: Completas y específicas
- Códigos: Deben existir en inventario
- Cantidades: Deben ser positivas
- Unidades: Válidas según producto
- Descripciones: Claras y específicas
Documento de Soporte (Opcional)
Section titled “Documento de Soporte (Opcional)”- Código: Debe ser válido si se incluye
- Fecha: Coherente con el traslado
- Número: Debe existir si se especifica
Códigos de Respuesta
Section titled “Códigos de Respuesta”Código | Descripción | Acción |
---|---|---|
201 | Guía de remisión creada exitosamente | Continuar con el flujo |
400 | Datos inválidos | Revisar formato de datos |
401 | Token inválido | Renovar autenticación |
404 | Documento de soporte no encontrado | Verificar número si aplica |
422 | Error de validación | Corregir datos según errores |
500 | Error del servidor | Reintentar más tarde |
Errores Comunes
Section titled “Errores Comunes”Error de Validación (422)
Section titled “Error de Validación (422)”{ "message": "Error de validación", "status": "UNPROCESSABLE_ENTITY", "errors": { "transport.driver_identification": [ "La identificación del conductor no es válida" ], "transport.vehicle_plate": [ "La placa del vehículo es requerida" ], "document.end_date_transport": [ "La fecha de fin debe ser posterior a la fecha de inicio" ] }}
Soluciones
Section titled “Soluciones”-
Identificación del conductor inválida
- Verificar formato de cédula/RUC
- Confirmar que sea válida
- Revisar dígito verificador
-
Placa del vehículo requerida
- Proporcionar placa válida
- Verificar formato ecuatoriano
- Confirmar existencia del vehículo
-
Fechas de transporte incorrectas
- Fecha fin posterior a fecha inicio
- No fechas futuras lejanas
- Coherencia con fecha del documento
Mejores Prácticas
Section titled “Mejores Prácticas”1. Validación de Transporte
Section titled “1. Validación de Transporte”// Validar datos del transporte antes de crear$validateTransport = function($transport, $startDate, $endDate) { // Validar identificación del conductor if (!$this->isValidIdentification($transport['driver_identification'])) { throw new InvalidDriverIdentificationException(); }
// Validar placa del vehículo if (!$this->isValidVehiclePlate($transport['vehicle_plate'])) { throw new InvalidVehiclePlateException(); }
// Validar fechas if (strtotime($endDate) < strtotime($startDate)) { throw new InvalidTransportDatesException(); }};
2. Gestión de Inventario
Section titled “2. Gestión de Inventario”// Verificar disponibilidad de productos antes del trasladoconst validateInventory = async (items, originWarehouse) => { for (const item of items) { const availability = await checkInventory(item.code, originWarehouse); if (availability < item.quantity) { throw new InsufficientInventoryError(item.code, availability, item.quantity); } }};
3. Cálculo de Rutas
Section titled “3. Cálculo de Rutas”// Calcular tiempo estimado de transporte$calculateTransportTime = function($originAddress, $destinationAddress) { $distance = $this->calculateDistance($originAddress, $destinationAddress); $estimatedHours = $distance / 60; // 60 km/h promedio return ceil($estimatedHours);};
4. Trazabilidad Completa
Section titled “4. Trazabilidad Completa”// Mantener trazabilidad del trasladoconst createWaybill = (data) => { return { ...data, tracking: { origin_warehouse: data.origin_warehouse, destination_warehouse: data.destination_warehouse, estimated_delivery: calculateEstimatedDelivery(data.start_date_transport), route: calculateRoute(data.origin_address, data.destination_address) } };};
Flujo Recomendado
Section titled “Flujo Recomendado”-
Verificar disponibilidad
- Confirmar existencia de productos
- Validar cantidades en inventario
- Revisar estado de productos
-
Planificar transporte
- Definir fechas de traslado
- Asignar conductor y vehículo
- Calcular ruta óptima
-
Preparar documentación
- Verificar documento de soporte si aplica
- Completar datos del destinatario
- Validar información de transporte
-
Crear guía de remisión
- Enviar solicitud POST
- Verificar respuesta
- Manejar errores específicos
-
Procesar resultado
- Actualizar inventario de origen
- Notificar al destinatario
- Iniciar seguimiento de entrega
- Preparar documentos físicos
Consideraciones Logísticas
Section titled “Consideraciones Logísticas”Planificación del Transporte
Section titled “Planificación del Transporte”- Rutas: Optimizar rutas de entrega
- Horarios: Considerar horarios de recepción
- Capacidad: Verificar capacidad del vehículo
- Restricciones: Considerar restricciones de tránsito
Control de Calidad
Section titled “Control de Calidad”- Empaque: Verificar empaque adecuado
- Etiquetado: Etiquetar correctamente
- Documentación: Incluir documentos necesarios
- Seguridad: Medidas de seguridad apropiadas
Seguimiento
Section titled “Seguimiento”- GPS: Seguimiento en tiempo real si disponible
- Comunicación: Mantener comunicación con conductor
- Alertas: Configurar alertas de entrega
- Confirmación: Confirmar recepción
Impacto en Inventario
Section titled “Impacto en Inventario”En el Origen
Section titled “En el Origen”- Reducción: Disminución de inventario
- Reserva: Productos en tránsito
- Estado: Cambio de estado a “en tránsito”
- Disponibilidad: Actualización de disponibilidad
En el Destino
Section titled “En el Destino”- Recepción: Proceso de recepción
- Verificación: Verificar cantidades y estado
- Ingreso: Ingreso al inventario destino
- Confirmación: Confirmar recepción completa
Casos de Uso Específicos
Section titled “Casos de Uso Específicos”1. Entrega por Venta
Section titled “1. Entrega por Venta”{ "transport_reason": "01", "support_code_document": "01", "support_document_number": "001-001-000000123"}
2. Traslado entre Sucursales
Section titled “2. Traslado entre Sucursales”{ "transport_reason": "05", "origin_address": "Sucursal Quito - Av. Amazonas 123", "destination_address": "Sucursal Guayaquil - Av. 9 de Octubre 456"}
3. Devolución de Cliente
Section titled “3. Devolución de Cliente”{ "transport_reason": "03", "support_code_document": "04", "support_document_number": "001-001-000000045"}
4. Consignación
Section titled “4. Consignación”{ "transport_reason": "02", "aditional_fields": [ { "key": "Contrato", "value": "CONS-2024-001", "type": "custom" } ]}
Notas Importantes
Section titled “Notas Importantes”- 📦 Amparo legal: La guía ampara legalmente el traslado de mercaderías
- 🚛 Transporte obligatorio: Información del transporte es obligatoria
- 🔗 Trazabilidad: Permite seguimiento completo del traslado
- ⏰ Fechas coherentes: Las fechas deben ser lógicas y coherentes
- 📧 Notificaciones automáticas: El destinatario recibe notificación
- 💾 Impacto en inventario: Afecta automáticamente el inventario
- 🔄 Estados sincronizados: El estado se actualiza automáticamente
- 📊 Reportes de logística: Genera reportes de movimientos
- 🚫 No modificable: Una vez autorizada, no se puede modificar
- 🛣️ Control de rutas: Permite control y optimización de rutas
- 📱 Seguimiento móvil: Compatible con aplicaciones de seguimiento
- 🏛️ Cumplimiento legal: Cumple con normativas de transporte