https://api.envibox.com.co/api/v1
Documentación API EnviBox
Bienvenido a la documentación oficial de la API de EnviBox. Esta API RESTful permite integrar servicios de mensajería y consulta de tarifas en tus aplicaciones.
Características Principales
- Endpoints RESTful con respuestas JSON
- Consulta de tarifas en tiempo real
- Gestión completa de envíos
- Autenticación por API Key
- Paginación y filtros avanzados
- Alta disponibilidad y rendimiento
- Documentación actualizada
Autenticación
Para operaciones de escritura (POST, PUT, DELETE, PATCH) se requiere autenticación mediante API Key y contraseña. Los endpoints de tarifas son públicos.
Métodos de Autenticación:
1. Parámetros de consulta (GET/DELETE):
2. Cuerpo JSON (POST/PUT/PATCH):
3. Headers HTTP (opcional para POST/PUT/PATCH):
Formatos de Respuesta
Todas las respuestas siguen un formato consistente para facilitar el parsing.
Estructura Base:
Ejemplo Exitosa:
Manejo de Errores
La API utiliza códigos de estado HTTP estándar. Los errores incluyen un mensaje descriptivo.
Códigos HTTP:
Ejemplo de Error:
Obtener todas las tarifas
PÚBLICORetorna la lista completa de tarifas activas en el sistema. No requiere autenticación.
Ejemplo de Solicitud:
Respuesta Exitosa:
Obtener tarifa por ID
PÚBLICOObtiene los detalles de una tarifa específica mediante su ID numérico. No requiere autenticación.
Parámetros de Ruta:
| Parámetro | Tipo | Descripción | Ejemplo |
|---|---|---|---|
id REQUERIDO |
integer | ID de la tarifa | 1, 2, 3 |
Ejemplo de Solicitud:
Obtener tipos de paquetes
PÚBLICORetorna la lista de tipos de paquetes disponibles en el sistema. No requiere autenticación.
Respuesta Exitosa:
Buscar tarifas por tipo
PÚBLICOBusca tarifas que coincidan con el tipo de paquete especificado (búsqueda parcial). No requiere autenticación.
Parámetros de Consulta:
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
tipo REQUERIDO |
Sí | Texto a buscar en tipo de paquete | "documento", "paquete" |
Ejemplo de Solicitud:
Calcular precio
PÚBLICOCalcula el precio de un envío basado en el tipo de paquete y el peso. No requiere autenticación.
Parámetros de Consulta:
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
tipo REQUERIDO |
Sí | Tipo exacto del paquete | "Documento", "Pequeno", "Mediano" |
peso OPCIONAL |
No | Peso en gramos | 300, 500, 1000 |
Ejemplo de Solicitud:
Respuesta Exitosa:
Listar todos los envíos
REQUIERE AUTHRetorna la lista de envíos del usuario autenticado con paginación y filtros.
Parámetros de consulta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
limit OPCIONAL |
integer | No | Límite de resultados (default: 50) | 10, 25, 50 |
page OPCIONAL |
integer | No | Número de página (default: 1) | 1, 2, 3 |
estado OPCIONAL |
string | No | Filtrar por estado | "Pendiente", "Recogido", "Entregado" |
usuario_id OPCIONAL |
integer | No | Filtrar por ID de usuario (solo admin) | 1, 2, 3 |
fecha_desde OPCIONAL |
date | No | Filtrar desde fecha (YYYY-MM-DD) | "2025-01-01" |
fecha_hasta OPCIONAL |
date | No | Filtrar hasta fecha (YYYY-MM-DD) | "2025-01-31" |
Ejemplo de Solicitud:
Respuesta Exitosa:
Obtener envío por ID
PÚBLICOObtiene los detalles completos de un envío específico mediante su ID. No requiere autenticación.
Parámetros de Ruta:
| Parámetro | Tipo | Descripción | Ejemplo |
|---|---|---|---|
id REQUERIDO |
integer | ID del envío | 1, 2, 3 |
Ejemplo de Solicitud:
Respuesta Exitosa:
Crear nuevo envío
REQUIERE AUTHCrea un nuevo envío en el sistema. Se genera automáticamente un número de guía único.
Parámetros del cuerpo (JSON):
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
tipo_paquete REQUERIDO |
string | Sí | Tipo: Documento, Pequeno, Mediano | "Documento" |
precio_envio REQUERIDO |
decimal | Sí | Precio en COP | 5000.00 |
metodo_pago REQUERIDO |
string | Sí | Efectivo, Transferencia, Contraentrega | "Efectivo" |
nombre_remitente REQUERIDO |
string | Sí | Nombre completo remitente | "Juan Pérez" |
direccion_remitente REQUERIDO |
string | Sí | Dirección completa remitente | "Calle 123 #45-67" |
telefono_remitente REQUERIDO |
string | Sí | Teléfono remitente | "573001234567" |
nombre_destinatario REQUERIDO |
string | Sí | Nombre completo destinatario | "María García" |
direccion_destinatario REQUERIDO |
string | Sí | Dirección completa destinatario | "Carrera 89 #12-34" |
telefono_destinatario REQUERIDO |
string | Sí | Teléfono destinatario | "573009876543" |
distancia_km OPCIONAL |
integer | No | Distancia en kilómetros | 5 |
latitud_remitente OPCIONAL |
decimal | No | Latitud del remitente | 4.6097100 |
longitud_remitente OPCIONAL |
decimal | No | Longitud del remitente | -74.0817500 |
observaciones_remitente OPCIONAL |
string | No | Observaciones del remitente | "Entregar después de las 3pm" |
latitud_destinatario OPCIONAL |
decimal | No | Latitud del destinatario | 4.6097100 |
longitud_destinatario OPCIONAL |
decimal | No | Longitud del destinatario | -74.0817500 |
observaciones_destinatario OPCIONAL |
string | No | Observaciones del destinatario | "Llamar antes de llegar" |
Ejemplo de Solicitud:
Respuesta Exitosa:
Actualizar envío
REQUIERE AUTHActualiza la información de un envío existente. Solo se pueden actualizar envíos con estado "Pendiente".
Parámetros de Ruta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
id REQUERIDO |
integer | Sí | ID del envío a actualizar | 1, 2, 3 |
Parámetros del cuerpo (JSON):
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
tipo_paquete OPCIONAL |
string | No | Tipo: Documento, Pequeno, Mediano | "Documento" |
precio_envio OPCIONAL |
decimal | No | Precio en COP | 5000.00 |
metodo_pago OPCIONAL |
string | No | Efectivo, Transferencia, Contraentrega | "Efectivo" |
Ejemplo de Solicitud:
Restricciones:
- Solo se pueden actualizar envíos con estado "Pendiente"
- Solo el dueño del envío puede actualizarlo
- No se puede cambiar el número de guía
Eliminar envío
REQUIERE AUTHElimina un envío del sistema (soft delete). Solo se pueden eliminar envíos con estado "Pendiente".
Parámetros:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
id REQUERIDO |
integer | Sí | ID del envío a eliminar | 1, 2, 3 |
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
Ejemplo de Solicitud:
Restricciones:
- Solo se pueden eliminar envíos con estado "Pendiente"
- Solo el dueño del envío puede eliminarlo
- Eliminación lógica (soft delete)
Cambiar estado del envío
REQUIERE AUTHActualiza el estado de un envío. Las transiciones de estado están controladas: Pendiente → Recogido → Entregado
Parámetros del cuerpo (JSON):
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
estado REQUERIDO |
string | Sí | Nuevo estado: Pendiente, Recogido, Entregado | "Recogido" |
Transiciones permitidas:
Pendiente→Recogido→EntregadoRecogido→EntregadoEntregado→ No se puede cambiar
Ejemplo de Solicitud:
Respuesta Exitosa:
Buscar envío por número de guía
PÚBLICOBusca envíos por número de guía (búsqueda parcial). No requiere autenticación.
Parámetros de Ruta:
| Parámetro | Tipo | Descripción | Ejemplo |
|---|---|---|---|
guia REQUERIDO |
string | Número de guía o parte de él | "ENV-2025", "ABC123" |
Ejemplo de Solicitud:
Filtrar envíos por estado
REQUIERE AUTHObtiene todos los envíos del usuario autenticado con un estado específico.
Parámetros de Ruta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
estado REQUERIDO |
string | Sí | Estado a filtrar: Pendiente, Recogido, Entregado | "Pendiente", "Recogido", "Entregado" |
Parámetros de Consulta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
limit OPCIONAL |
integer | No | Límite de resultados (default: 50) | 10, 25, 50 |
page OPCIONAL |
integer | No | Número de página (default: 1) | 1, 2, 3 |
Ejemplo de Solicitud:
Envios por usuario
REQUIERE AUTHObtiene todos los envíos asociados a un usuario específico. Requiere permisos de administrador o ser el mismo usuario.
Parámetros de Ruta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
usuario_id REQUERIDO |
integer | Sí | ID del usuario | 1, 2, 3 |
Parámetros de Consulta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |
limit OPCIONAL |
integer | No | Límite de resultados (default: 50) | 10, 25, 50 |
page OPCIONAL |
integer | No | Número de página (default: 1) | 1, 2, 3 |
Ejemplo de Solicitud:
Estadísticas de envíos
REQUIERE AUTHObtiene estadísticas generales sobre los envíos del usuario autenticado.
Parámetros de Consulta:
| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|---|---|---|---|---|
api_key REQUERIDO |
string | Sí | API Key del usuario | "AK_TEST_7e3b9f2a4c6d8e1f" |
api_pw REQUERIDO |
string | Sí | Contraseña API | "admin123" |