CONEXA API
API para apps y sistemas externos. Todas las integraciones consumen una única URL base: https://conexa.la.
Antes de empezar
Datos necesarios
company_slug: identificador de la empresa, por ejemploempresa.emailousernameypassword: usuario activo dentro de esa empresa.Authorization: Bearer TOKENpara las consultas protegidas.
Regla multiempresa
El cliente externo no debe enviar company_id. La API toma la empresa desde el usuario autenticado y filtra los datos automáticamente.
Autenticación
El login recibe company_slug, password y un identificador de usuario: email o username. Después del login no se envía company_id: el backend resuelve la empresa desde el token autenticado.
POST https://conexa.la/auth/login
Content-Type: application/json
{
"company_slug": "empresa",
"username": "tecnico",
"password": "clave"
}
Authorization: Bearer TOKEN
Ejemplos rápidos
Flujo básico para consumir la API desde una app, Postman, Insomnia o una integración externa.
1. Obtener token
curl -X POST https://conexa.la/auth/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"company_slug": "empresa",
"email": "admin@empresa.com",
"password": "clave"
}'
Respuesta esperada
{
"success": true,
"token": "TOKEN",
"token_type": "Bearer",
"company": {
"id": 1,
"name": "Empresa Internet",
"slug": "empresa"
},
"user": {
"id": 1,
"name": "Gustavo",
"email": "admin@empresa.com",
"role": "admin"
}
}
2. Ver usuario autenticado
curl https://conexa.la/auth/me \ -H "Accept: application/json" \ -H "Authorization: Bearer TOKEN"
3. Listar clientes
curl https://conexa.la/clients \ -H "Accept: application/json" \ -H "Authorization: Bearer TOKEN"
TOKEN por el valor devuelto en el login. Ese token representa al usuario y a su empresa.
Cobros externos
Para cajas, billeteras o sistemas externos de cobranza, se puede buscar el cliente por DNI, ver saldo y facturas pendientes, y registrar el pago. El pago se imputa automáticamente a las facturas abiertas más antiguas, o primero a invoice_id si se envía.
GET https://conexa.la/collections/client?dni=30111222 Authorization: Bearer TOKEN
{
"success": true,
"data": {
"client": {
"id": 15,
"name": "Juan Perez",
"document_number": "30111222",
"balance_amount": 12500,
"saldo": 12500
},
"pending_invoices": [
{
"id": 44,
"display_number": "FX-000044",
"due_date": "2026-06-10",
"total": 12500,
"balance_amount": 12500,
"saldo": 12500
}
],
"pending_balance_amount": 12500,
"saldo_pendiente": 12500
}
}
POST https://conexa.la/collections/payments
Authorization: Bearer TOKEN
Content-Type: application/json
{
"dni": "30111222",
"amount": 12500,
"method": "efectivo",
"reference": "caja-000123",
"received_at": "2026-06-01 10:30:00"
}
App de técnico
Un técnico puede entrar con username y clave, leer sus órdenes asignadas por fecha y adjuntar observaciones, firma y fotos desde otra app. Las órdenes se asignan por el nombre del usuario técnico cargado en la visita.
GET https://conexa.la/technician/orders?date=2026-05-16&days_before=1&days_after=3 Authorization: Bearer TOKEN
POST https://conexa.la/technician/orders/{id}/observations
Authorization: Bearer TOKEN
Content-Type: application/json
{
"body": "Se cambió el conector y quedó operativo."
}
POST https://conexa.la/technician/orders/{id}/signature
Authorization: Bearer TOKEN
Content-Type: multipart/form-data
signature=@firma.png
POST https://conexa.la/technician/orders/{id}/photos
Authorization: Bearer TOKEN
Content-Type: multipart/form-data
photos[]=@foto1.jpg
photos[]=@foto2.jpg
Formato JSON
{
"success": true,
"data": {}
}
{
"success": false,
"message": "Mensaje claro del error",
"errors": {}
}
Endpoints
Permisos de token
Los tokens pueden limitarse por scopes. Acciones sensibles de routers y ACS quedan protegidas y auditadas.
clients:read clients:write services:read services:write visits:read visits:update visits:write visit_photos:create visit_signature:create visit_observations:create technician_locations:create maps:read invoices:read invoices:write payments:read payments:create payments:write routers:read routers:write acs:read acs:write vpn:read vpn:write adminErrores comunes
401: falta token Bearer o está revocado. 403: usuario/empresa inactiva o scope insuficiente. 422: validación de datos. 501: endpoint preparado pero pendiente de integración interna.