Listar Resoluciones [BETA]
Funcionalidad en pruebas
Esta funcionalidad forma parte de un proceso de pruebas internas y no se encuentra disponible para usuarios del sistema.
Permite obtener el listado de resoluciones de facturación configuradas en la inmobiliaria. Retorna tanto las resoluciones de facturación como las de documento soporte, con soporte para paginación y múltiples filtros.
Endpoint: https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions
{{instancia}}: Hace referencia a la instancia de cada inmobiliaria.
Petición
| Método | GET |
| Content-Type | application/json |
| Authorization | Bearer token, Token obtenido al consumir el servicio Login |
| Parámetros | ||||
| Parámetro | Tipo | Obligatorio | Valor por defecto | Descripción |
| page | integer | No | 1 | Especifica la página de resultados que se desea recuperar al realizar la solicitud. |
| page_size | integer | No | 10 | Especifica el número máximo de elementos que se deben devolver en la solicitud, el límite máximo es de 1000. |
| activa | string | No | - | Filtra resoluciones por estado activo. Valores válidos: SI (activas) o NO (inactivas). |
| tipo_doc_id | integer | No | - | Filtra resoluciones por el ID del tipo de documento contable asociado. |
| fact_electronica | string | No | - | Filtra resoluciones por facturación electrónica. Valores válidos: SI o NO. |
| resolucion_para | integer | No | - | Filtra resoluciones por tipo. Valores válidos: 1 (Factura de Venta) o 2 (Documento Soporte). Si no se especifica, retorna ambos tipos. |
| fecha_desde | string | No | - | Fecha mínima de la resolución. Formato: YYYY-MM-DD (ej: 2025-01-01). |
| fecha_hasta | string | No | - | Fecha máxima de la resolución. Formato: YYYY-MM-DD (ej: 2026-12-31). |
| fecha_vigencia_desde | string | No | - | Fecha mínima de vigencia de la resolución. Formato: YYYY-MM-DD. |
| fecha_vigencia_hasta | string | No | - | Fecha máxima de vigencia de la resolución. Formato: YYYY-MM-DD. |
Ejemplos de peticiones
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?page=1&page_size=50
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?activa=SI
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?resolucion_para=1
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?resolucion_para=2&activa=SI
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?fact_electronica=SI&page_size=100
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?fecha_desde=2024-01-01&fecha_hasta=2026-12-31
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?resolucion_para=1&activa=SI&fact_electronica=SI&page_size=50
Respuesta
Lista de resoluciones de facturación con información del tipo de documento asociado, datos de consecutivos, fechas, estado y metadatos de paginación.
{
"status": 200,
"message": null,
"body": [
{
"resolucion_id": 4,
"tipo_doc_id": 7,
"tipo_doc": "Factura",
"resolucion_numero": "18700052960",
"consecutivo_iniciar": 1,
"consecutivo_inicial": 1,
"consecutivo_final": 20000,
"fecha": "2025-07-24",
"fecha_vigencia": "2026-07-24",
"prefijo": "FE",
"dias_vencimiento": 5,
"activa": "SI",
"codigo_barra": "NO",
"codigo_ean": null,
"tipo_resolucion": null,
"creadopor": 5,
"fechacreacion": "2025-07-24 12:00:01",
"modificadopor": null,
"fechamodificacion": null,
"fact_electronica": "SI",
"resolucion_para": 1
},
{
"resolucion_id": 2,
"tipo_doc_id": 39,
"tipo_doc": "Documento Soporte",
"resolucion_numero": "18760000012",
"consecutivo_iniciar": 1,
"consecutivo_inicial": 1,
"consecutivo_final": 1000000,
"fecha": "2022-09-01",
"fecha_vigencia": "2024-05-31",
"prefijo": "DS",
"dias_vencimiento": 5,
"activa": "SI",
"codigo_barra": "NO",
"codigo_ean": null,
"tipo_resolucion": null,
"creadopor": 5,
"fechacreacion": "2024-05-02 15:01:48",
"modificadopor": 5,
"fechamodificacion": "2024-05-06 15:05:23",
"fact_electronica": "SI",
"resolucion_para": 2
}
],
"pagination": {
"total_records": 4,
"total_pages": 2,
"current_page": 1,
"page_size": 2,
"current_page_records": 2,
"has_next_page": true,
"has_previous_page": false
},
"filters_applied": null
}
Claves y Descripciones del JSON de Respuesta
Esta tabla enumera las claves presentes en el JSON principal de la respuesta y proporciona una breve descripción de cada una.
| Clave | Tipo | Descripción |
|---|---|---|
status |
Entero | Código del estado de la respuesta: 200 para exitoso, 400 para errores de validación, 500 para error interno. |
message |
Texto | Cuando la respuesta es exitosa, es nulo, y cuando hay error o no se encontraron resultados, contiene el mensaje descriptivo. |
body |
Array | Contiene el listado de resoluciones retornadas por la API. Es un array vacío si no hay resultados. |
pagination |
Objeto | Contiene toda la información de paginación de la consulta. |
filters_applied |
Objeto | Contiene los filtros que fueron aplicados en la consulta. Es nulo si no se aplicaron filtros. |
Cuerpo
Cada elemento dentro de la lista body tiene las siguientes claves:
| Clave | Tipo | Descripción |
|---|---|---|
resolucion_id |
Entero | Identificador único de la resolución. Use este valor para el parámetro resolucion_id al filtrar facturas en el endpoint Listar Facturas. |
tipo_doc_id |
Entero | Identificador del tipo de documento contable asociado a la resolución. Puede ser nulo. |
tipo_doc |
Texto | Nombre del tipo de documento contable (ej: "Factura", "Documento Soporte"). Puede ser nulo si no tiene tipo de documento asociado. |
resolucion_numero |
Texto | Número de la resolución asignado por la DIAN. |
consecutivo_iniciar |
Entero | Consecutivo a partir del cual se empezará a facturar. Debe estar entre el consecutivo inicial y final. |
consecutivo_inicial |
Entero | Consecutivo inicial autorizado por la DIAN. |
consecutivo_final |
Entero | Consecutivo final autorizado por la DIAN. |
fecha |
Texto | Fecha de expedición de la resolución. Formato: YYYY-MM-DD. |
fecha_vigencia |
Texto | Fecha de vigencia (vencimiento) de la resolución. Formato: YYYY-MM-DD. |
prefijo |
Texto | Prefijo asignado a la resolución (ej: "FE", "DS", "PR"). |
dias_vencimiento |
Entero | Días de vencimiento configurados para las facturas generadas con esta resolución. |
activa |
Texto | Estado de la resolución: SI (activa) o NO (inactiva). |
codigo_barra |
Texto | Indica si la resolución tiene código de barras habilitado: SI o NO. |
codigo_ean |
Texto | Código EAN asociado a la resolución. Puede ser nulo si no se ha configurado. |
tipo_resolucion |
Entero | Tipo interno de la resolución. Puede ser nulo. |
creadopor |
Entero | Identificador del usuario que creó la resolución. Puede ser nulo. |
fechacreacion |
Texto | Fecha y hora de creación de la resolución. Formato: YYYY-MM-DD HH:MM:SS. |
modificadopor |
Entero | Identificador del usuario que modificó la resolución por última vez. Puede ser nulo. |
fechamodificacion |
Texto | Fecha y hora de la última modificación de la resolución. Puede ser nulo. Formato: YYYY-MM-DD HH:MM:SS. |
fact_electronica |
Texto | Indica si la resolución es de facturación electrónica: SI o NO. |
resolucion_para |
Entero | Tipo de resolución: 1 = Factura de Venta, 2 = Documento Soporte (no obligados a facturar). |
Paginación
El objeto pagination tiene las siguientes claves:
| Clave | Tipo | Descripción |
|---|---|---|
total_records |
Numérico | Total de resoluciones que coinciden con los filtros aplicados. |
total_pages |
Numérico | Cantidad de páginas, corresponde al total de registros dividido por el tamaño de la página. |
current_page |
Numérico | Página actual de la consulta. |
page_size |
Numérico | Tamaño de la página, es decir, cantidad máxima de registros por consulta. |
current_page_records |
Numérico | Cantidad de registros retornados en la página actual. |
has_next_page |
Booleano | Verdadero si hay siguientes páginas que se pueden consultar, falso en otro caso. |
has_previous_page |
Booleano | Verdadero si existen páginas previas que se pueden consultar, falso en otro caso. |
Filtros Aplicados
El objeto filters_applied contiene los filtros que fueron utilizados en la consulta. Solo se incluye en la respuesta cuando se aplican filtros. Las posibles claves son:
| Clave | Tipo | Descripción |
|---|---|---|
activa |
Texto | Estado activo utilizado como filtro: SI o NO. |
tipo_doc_id |
Entero | ID del tipo de documento contable utilizado como filtro. |
fact_electronica |
Texto | Filtro de facturación electrónica utilizado: SI o NO. |
resolucion_para |
Entero | Tipo de resolución utilizado como filtro: 1 (Factura) o 2 (Documento Soporte). |
fecha_desde |
Texto | Fecha mínima de resolución utilizada como filtro. |
fecha_hasta |
Texto | Fecha máxima de resolución utilizada como filtro. |
fecha_vigencia_desde |
Texto | Fecha mínima de vigencia utilizada como filtro. |
fecha_vigencia_hasta |
Texto | Fecha máxima de vigencia utilizada como filtro. |
Respuesta con Filtros Aplicados
{
"status": 200,
"message": null,
"body": [
{
"resolucion_id": 4,
"tipo_doc_id": 7,
"tipo_doc": "Factura",
"resolucion_numero": "18700052960",
"consecutivo_iniciar": 1,
"consecutivo_inicial": 1,
"consecutivo_final": 20000,
"fecha": "2025-07-24",
"fecha_vigencia": "2026-07-24",
"prefijo": "FE",
"dias_vencimiento": 5,
"activa": "SI",
"codigo_barra": "NO",
"codigo_ean": null,
"tipo_resolucion": null,
"creadopor": 5,
"fechacreacion": "2025-07-24 12:00:01",
"modificadopor": null,
"fechamodificacion": null,
"fact_electronica": "SI",
"resolucion_para": 1
}
],
"pagination": {
"total_records": 3,
"total_pages": 1,
"current_page": 1,
"page_size": 10,
"current_page_records": 3,
"has_next_page": false,
"has_previous_page": false
},
"filters_applied": {
"resolucion_para": 1,
"activa": "SI"
}
}
Respuesta Sin Resultados
{
"status": 200,
"message": "No se encontraron resoluciones con los criterios especificados.",
"body": [],
"pagination": {
"total_records": 0,
"total_pages": 0,
"current_page": 1,
"page_size": 10,
"current_page_records": 0,
"has_next_page": false,
"has_previous_page": false
},
"filters_applied": {
"activa": "NO"
}
}
Respuesta de Error
Error de Validación (400)
Se retorna cuando se envía un parámetro con un valor no válido.
{
"status": 400,
"message": "El parámetro \"activa\" debe ser \"SI\" o \"NO\".",
"body": null,
"pagination": null,
"filters_applied": null
}
{
"status": 400,
"message": "El parámetro \"resolucion_para\" debe ser 1 (Factura) o 2 (Documento Soporte).",
"body": null,
"pagination": null,
"filters_applied": null
}
{
"status": 400,
"message": "El parámetro \"fecha_desde\" debe tener el formato Y-m-d (ej: 2026-01-15).",
"body": null,
"pagination": null,
"filters_applied": null
}
Error Interno (500)
Se retorna cuando ocurre un error inesperado en el servidor.
{
"status": 500,
"message": "Error interno del servidor al obtener las resoluciones.",
"body": null,
"pagination": null,
"filters_applied": null
}
Códigos de Respuesta HTTP
| Código | Descripción |
|---|---|
| 200 | Consulta exitosa. El cuerpo de la respuesta contiene las resoluciones (puede ser un array vacío si no hay resultados). |
| 400 | Error de validación. Algún parámetro tiene un valor no válido. El campo message indica el parámetro y los valores aceptados. |
| 500 | Error interno del servidor. |
Valores de Referencia
Valores de resolucion_para
| Valor | Descripción |
|---|---|
| 1 | Factura de Venta — Resoluciones utilizadas para la emisión de facturas de venta |
| 2 | Documento Soporte — Resoluciones utilizadas para documento soporte de no obligados a facturar |
Valores de activa
| Valor | Descripción |
|---|---|
| SI | La resolución está activa y disponible para facturación |
| NO | La resolución está inactiva y no se puede usar para facturar |
Notas Importantes
-
Relación con facturas: El
resolucion_idretornado puede usarse como valor del parámetroresolucion_iden el endpoint Listar Facturas para filtrar facturas que pertenecen a una resolución específica. -
Tipo de resolución: El campo
resolucion_paradiferencia las resoluciones de facturación (1) de las de documento soporte (2). En el sistema, las resoluciones de facturación se configuran en Configuraciones > Facturación y las de documento soporte en Configuraciones > Facturas de Compra. -
Filtros de fecha: Los filtros
fecha_desde/fecha_hastaaplican sobre la fecha de expedición de la resolución, mientras quefecha_vigencia_desde/fecha_vigencia_hastaaplican sobre la fecha de vigencia. Ambos rangos pueden combinarse en una misma consulta. -
Ordenamiento: Las resoluciones se retornan ordenadas por
resolucion_idde forma descendente (las más recientes primero).
Ejemplos
Curl
curl -X GET "https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_AUTHENTICATION_TOKEN"
Con filtros:
curl -X GET "https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/resolutions?resolucion_para=1&activa=SI&page_size=50" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_AUTHENTICATION_TOKEN"
PHP Curl
<?php
$instance = 'your_instance'; // Reemplace con su instancia actual
$token = 'YOUR_AUTHENTICATION_TOKEN'; // Reemplace con el token obtenido desde el servicio de login
// Parámetros de ejemplo
$page = 1;
$pageSize = 50;
// Parámetros de filtro opcionales
$resolucionPara = 1; // Opcional: 1 = Factura, 2 = Documento Soporte
$activa = 'SI'; // Opcional: 'SI' o 'NO'
$factElectronica = null; // Opcional: 'SI' o 'NO'
$url = "https://{$instance}.arrendasoft.co/service/v2/public/invoices/resolutions";
// Construir parámetros de consulta
$queryParams = [
'page' => $page,
'page_size' => $pageSize
];
if (!empty($resolucionPara)) {
$queryParams['resolucion_para'] = $resolucionPara;
}
if (!empty($activa)) {
$queryParams['activa'] = $activa;
}
if (!empty($factElectronica)) {
$queryParams['fact_electronica'] = $factElectronica;
}
$url .= '?' . http_build_query($queryParams);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $token
]);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
echo "HTTP Status Code: " . $http_code . "\n";
echo "Response: " . $response . "\n";
// Procesar la respuesta
$result = json_decode($response, true);
if ($http_code == 200 && !empty($result['body'])) {
echo "Se encontraron " . $result['pagination']['total_records'] . " resoluciones.\n\n";
foreach ($result['body'] as $resolucion) {
echo "ID: " . $resolucion['resolucion_id'] . "\n";
echo "Número: " . $resolucion['resolucion_numero'] . "\n";
echo "Prefijo: " . $resolucion['prefijo'] . "\n";
echo "Tipo: " . $resolucion['tipo_doc'] . "\n";
echo "Activa: " . $resolucion['activa'] . "\n";
echo "Vigencia: " . $resolucion['fecha_vigencia'] . "\n";
echo "---\n";
}
} else {
echo $result['message'] ?? "No se encontraron resoluciones.\n";
}
}
curl_close($ch);
?>
JavaScript Fetch
const instance = 'your_instance'; // Reemplace con su instancia actual
const token = 'YOUR_AUTHENTICATION_TOKEN'; // Reemplace con el token obtenido
// Parámetros de filtro opcionales
const params = new URLSearchParams();
params.append('page', '1');
params.append('page_size', '50');
params.append('resolucion_para', '1'); // Opcional: 1 = Factura, 2 = Documento Soporte
params.append('activa', 'SI'); // Opcional: 'SI' o 'NO'
// params.append('fact_electronica', 'SI'); // Opcional: descomentar para filtrar
const url = `https://${instance}.arrendasoft.co/service/v2/public/invoices/resolutions?${params.toString()}`;
fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
}
})
.then(response => response.json())
.then(data => {
if (data.status === 200 && data.body.length > 0) {
console.log(`Se encontraron ${data.pagination.total_records} resoluciones:`);
data.body.forEach(res => {
console.log(`- ${res.prefijo} ${res.resolucion_numero} (ID: ${res.resolucion_id})`);
console.log(` Tipo: ${res.tipo_doc} | Activa: ${res.activa}`);
console.log(` Consecutivos: ${res.consecutivo_inicial} - ${res.consecutivo_final}`);
console.log(` Vigencia: ${res.fecha} a ${res.fecha_vigencia}`);
});
// Información de paginación
console.log(`\nPágina ${data.pagination.current_page} de ${data.pagination.total_pages}`);
} else {
console.log(data.message || 'No se encontraron resoluciones.');
}
})
.catch(error => console.error('Error de conexión:', error));