URL base
| Instalación | URL base |
|---|---|
| Nubicta en la nube | https://nube.nubicta.online/api/v1 |
| Instalación propia (código abierto) | https://tu-dominio/api/v1 |
Todas las respuestas son JSON en UTF-8. Las fechas usan el formato AAAA-MM-DD y los valores son números con decimales.
Autenticación
- En Nubicta entra a Configuración > Credenciales de integración a plataformas digitales (API).
- Activa Habilitar API, elige los permisos (Solo lectura o Lectura y escritura) y, si quieres, las IPs permitidas separadas por coma.
- Pulsa Generar nueva llave. La llave se muestra una sola vez: guárdala en un lugar seguro. Al generar otra, la anterior deja de funcionar.
Envía la llave en la cabecera Authorization de cada petición:
Authorization: Bearer TU_LLAVE
Accept: application/json
- Nubicta guarda solo la huella SHA-256 de la llave, nunca la llave en claro.
- Con Solo lectura solo funcionan las peticiones
GET. - Si llenas las IPs permitidas, cualquier otra IP recibe un error 403.
- Límite: 120 peticiones por minuto por llave. Si lo superas recibes un error 429.
Paginación
Los listados devuelven 50 registros por página. Puedes cambiarlo con por_pagina (de 1 a 100) y moverte con page.
{
"data": [ ... ],
"pagina": 1,
"por_pagina": 50,
"total": 134,
"paginas": 3
}
Errores
| Código | Cuándo ocurre |
|---|---|
| 401 | La llave no existe, está revocada o la cuenta está inactiva. |
| 402 | La suscripción está vencida: las consultas siguen funcionando, pero no se puede crear información. |
| 403 | La API está deshabilitada, la IP no está autorizada o la llave solo tiene permiso de lectura. |
| 404 | El registro no existe en tu empresa. |
| 422 | Los datos enviados no son válidos o el tercero ya existe. La respuesta trae message y, si aplica, errors por campo. |
| 429 | Superaste el límite de peticiones por minuto. |
{ "message": "Llave de acceso inválida o revocada." }
Endpoints
GET/terceros
Lista clientes, proveedores y empleados de la empresa, ordenados por nombre.
| Parámetro | Descripción |
|---|---|
q | Busca por nombre o identificación. |
tipo | cliente, proveedor o empleado. |
identificacion | Número de identificación exacto, sin DV. |
por_pagina, page | Paginación. |
curl -H "Authorization: Bearer TU_LLAVE" \
"https://nube.nubicta.online/api/v1/terceros?tipo=cliente&q=ejemplo"
Cada tercero tiene esta forma:
{
"id": 120,
"tipo_persona": "natural",
"tipo_identificacion": "13",
"identificacion": "1020304050",
"dv": null,
"sucursal": 0,
"nombre": "CLIENTE DE EJEMPLO",
"nombre_comercial": null,
"correo": "cliente@correo.com",
"telefono": "3000000000",
"direccion": "Calle 1 # 2-3",
"ciudad": "11001",
"responsable_iva": false,
"roles": ["cliente"],
"dias_credito": 0,
"activo": true
}
ciudad es el código DANE del municipio (por ejemplo 11001 para Bogotá).
GET/terceros/{id}
Devuelve un tercero con la misma forma del listado.
POST/terceros
Crea un tercero. Requiere permiso de Lectura y escritura. Responde 201 con el tercero creado, o 422 si ya existe uno con la misma identificación.
| Campo | Obligatorio | Descripción |
|---|---|---|
tipo_persona | Sí | natural o juridica. |
tipo_identificacion | Sí | Código DIAN: 13 cédula, 31 NIT, 22 cédula de extranjería, 41 pasaporte, 42 documento extranjero, 11, 12, 21, 47, 48, 50 o 91. |
identificacion | Sí | Número sin DV; con NIT el DV se calcula solo. |
nombres, apellidos | Si es persona natural | Nombres y apellidos. |
razon_social | Si es persona jurídica | Razón social. |
correo, telefono, direccion | No | Datos de contacto. |
ciudad | No | Código DANE del municipio. |
roles | No | Lista con cliente, proveedor y/o empleado. Por defecto ["cliente"]. |
responsable_iva | No | true o false. |
curl -X POST "https://nube.nubicta.online/api/v1/terceros" \
-H "Authorization: Bearer TU_LLAVE" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"tipo_persona":"natural","tipo_identificacion":"13","identificacion":"1020304050","nombres":"Ana","apellidos":"Gómez","correo":"ana@correo.com","ciudad":"11001"}'
GET/productos
Lista productos y servicios ordenados por código.
| Parámetro | Descripción |
|---|---|
q | Busca por nombre, código, referencia o código de barras. |
activo | 1 solo activos, 0 solo inactivos. |
por_pagina, page | Paginación. |
{
"id": 45,
"codigo": "P001",
"nombre": "PRODUCTO DE EJEMPLO",
"tipo": "Producto",
"referencia": null,
"codigo_barras": null,
"unidad": "Unidad",
"inventariable": true,
"existencias": 12,
"iva_incluido": true,
"precios": [{ "lista_precio_id": 1, "valor": 98000 }],
"impuestos": [{ "nombre": "IVA 5%", "porcentaje": 5 }],
"activo": true
}
GET/productos/{id}
Devuelve un producto con la misma forma del listado.
GET/facturas
Lista facturas de venta (FV), notas crédito (NC) y notas débito (ND), de la más reciente a la más antigua.
| Parámetro | Descripción |
|---|---|
tipo | FV, NC o ND. |
desde, hasta | Rango de fechas de elaboración (AAAA-MM-DD). |
identificacion | Identificación del cliente. |
por_pagina, page | Paginación. |
curl -H "Authorization: Bearer TU_LLAVE" \
"https://nube.nubicta.online/api/v1/facturas?tipo=FV&desde=2026-10-01&hasta=2026-10-31"
{
"id": 2301,
"tipo": "FV",
"numero": "FV-1-1001",
"fecha": "2026-10-16",
"vencimiento": "2026-10-31",
"cliente": { "identificacion": "1020304050", "nombre": "CLIENTE DE EJEMPLO" },
"subtotal": 93333.33,
"descuento": 0,
"impuestos": 4666.67,
"retenciones": 0,
"total": 98000,
"saldo": 0,
"cufe": "c1f0...",
"estado_dian": "Accepted",
"anulada": false
}
estado_dian puede ser Accepted (aceptado), Rejected (rechazado), Pending (en cola), Draft (sin enviar) o null si el documento no es electrónico.
GET/facturas/{id}
Devuelve el documento con sus ítems:
{
"id": 2301,
"numero": "FV-1-1001",
"...": "los mismos campos del listado",
"items": [
{ "codigo": "P001", "descripcion": "PRODUCTO DE EJEMPLO", "cantidad": 1, "precio": 93333.33, "descuento": 0, "iva": 5, "total": 98000 }
]
}
Buenas prácticas
- Guarda la llave en el servidor de tu plataforma, nunca en el navegador ni en una aplicación móvil.
- Usa una llave de Solo lectura si tu integración solo consulta información.
- Antes de crear un tercero, búscalo con
?identificacion=para no duplicarlo. - Si sospechas que la llave se filtró, genera una nueva: la anterior queda revocada al instante.
La API es parte del código abierto de Nubicta con licencia MIT y se entrega "tal cual". La información que consultas o creas es de tu empresa; Nubicta no la usa para otros fines.