Configuration Audit Report
Unified audit trail of edits and deletions across configuration entities — accounts, devices, personnel, catalogs, and portal records.
/apidev/v1/audit/configOverview
Returns the audit trail of changes made to configuration entities. Each row records who changed what, when, from where, and the exact field-level differences (previous value → new value).
Only modifications and removals are recorded — creations are never audited. Use this report to investigate who edited an account, when a price list was deactivated, or which user removed a portal configuration.
- Entity filter — narrow to a single configuration type (account, device, personnel, etc.)
- Action filter — keep only edits or only deletions
- Actor & target filters — focus on a specific user or a specific entity record
- Free-text search — match against the entity name and change summary
Each returned record also carries a source field telling you where the change came from (web panel, mobile app, external integration, bulk import, automation, or internal job) — see Source values.
Request
Request Headers
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your assigned tenant domain (default: geotareas.com) — always send your assigned tenant |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startdate | string | Yes | — | ISO 8601 start date-time (e.g. 2026-03-01T00:00:00). |
enddate | string | Yes | — | ISO 8601 end date-time. Max range 92 days from startdate. |
entity | string | No | All | Configuration entity type. One of the Entity values. |
action | string | No | All | Type of change. One of the Action values. |
user_id | string | No | All | Restrict to changes made by a specific user (actor) ID. |
entity_id | string | No | All | Restrict to changes affecting a specific entity record ID. |
search | string | No | — | Free-text search against entity name and change context. |
limit | integer | No | 25 | Number of records per page (1–100). A value outside that range returns 400 VALIDATION_ERROR — it is not clamped silently. |
offset | integer | No | 0 | Number of records to skip for pagination. |
Entity values
The entity filter accepts one of the following configuration entity types:
| Code | Description |
|---|---|
CUENTA | Account (root record). |
DISPOSITIVO | Device / vehicle. |
PERSONAL | Personnel / driver. |
PLANTILLA_COM | Communication template (root record). |
PLANTILLA_ESTADO | Status entry of a communication template (sub-resource of PLANTILLA_COM). |
CAMPO_DINAMICO | Dynamic-field definition / schema. |
PROCEDENCIA | Source / origin catalog entry. |
PRODUCTO | Product catalog entry. |
COBERTURA | Coverage entry (sub-resource of PRODUCTO). |
PRESTACION | Service type (classification). |
CAUSA | Cause (classification). |
SUBCAUSA | Sub-cause (classification, sub-resource of CAUSA). |
MOTIVO | Service reason. |
FINSERVICIO | Service-completion code. |
RECHAZO | Service-rejection code. |
ESTADO_TAREA | Task status (configurable catalog). |
PORTAL_FACTURA | Provider invoice (Portal). |
PORTAL_LIQUIDACION | Provider settlement (Portal). |
PORTAL_CONFIG | Portal configuration. |
Action values
The action filter accepts one of the following. Creations are not audited.
| Code | Description |
|---|---|
EDITAR | Field edit — one or more entity fields were modified (includes deactivation when it travels as a field change in the edit form). |
ELIMINAR | Removal — deletion, deactivation, or unlinking of the entity or a sub-resource. |
Source values
The source response field carries one of the following origins (it is informational — it cannot be used as a query filter):
| Code | Description |
|---|---|
WEB | Change made from the web panel. |
MDT | Change made from the mobile app. |
API_EXTERNA | Change made through the external API / integrations. |
IMPORT | Change made by the bulk-import worker. |
WORKFLOW | Change made by a workflow automation. |
SISTEMA | Change made by an internal system job (cron, cleanup, maintenance). |
Code Examples
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/audit/config?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&entity=CUENTA&action=EDITAR&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/audit/config?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&entity=CUENTA&action=EDITAR&limit=25`,
{
headers: {
'Authorization': `Bearer ${token}`,
'X-API-Key': apiKey,
'tenant': TENANT,
},
}
);
const data = await res.json();
import requests
response = requests.get(
f"https://{TENANT}/apidev/v1/audit/config",
headers={"Authorization": f"Bearer {token}", "X-API-Key": api_key, "tenant": TENANT},
params={
"startdate": "2026-03-01T00:00:00",
"enddate": "2026-03-31T23:59:59",
"entity": "CUENTA",
"action": "EDITAR",
"limit": 25,
},
)
data = response.json()
Response
Response Fields
| Field | Type | Description |
|---|---|---|
audit_id | string | Audit record identifier. |
occurred_at | string | When the change was recorded. |
entity | string | null | Configuration entity type. One of the Entity values. |
entity_id | string | null | Identifier of the affected entity record. |
entity_name | string | null | Human-readable name of the affected entity. |
action | string | null | Type of change. One of the Action values. |
source | string | null | Origin of the change. One of the Source values. |
user_id | string | null | Identifier of the user who made the change. |
user_name | string | null | Name of the user who made the change. |
is_admin_logicsat | boolean | Whether the actor is a platform (LogicSat) administrator. |
changes | array | Field-level differences (see below). |
Each item in changes has the following shape:
| Field | Type | Description |
|---|---|---|
field | string | Name of the field that changed. |
label | string | null | Human-readable field name. |
old_value | string | null | Previous value. |
new_value | string | null | New value. |
Example Response
{
"success": true,
"data": [
{
"audit_id": "982710394857201664",
"occurred_at": "2026-03-05T16:53:00",
"entity": "CUENTA",
"entity_id": "982710394857100200",
"entity_name": "Distribuidora del Norte S.A.",
"action": "EDITAR",
"source": "WEB",
"user_id": "982710394857009999",
"user_name": "Laura Hernandez",
"is_admin_logicsat": false,
"changes": [
{
"field": "cuetel",
"label": "Phone",
"old_value": "555-1234",
"new_value": "555-9876"
}
]
},
{
"audit_id": "982710394857201665",
"occurred_at": "2026-03-06T09:12:00",
"entity": "PRODUCTO",
"entity_id": "982710394857100455",
"entity_name": "Roadside Assistance — Premium",
"action": "ELIMINAR",
"source": "IMPORT",
"user_id": "982710394857009100",
"user_name": "System Import",
"is_admin_logicsat": true,
"changes": [
{
"field": "proestado",
"label": "Status",
"old_value": "A",
"new_value": "I"
}
]
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}
Errors
| Code | HTTP | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid parameters (e.g. date range exceeds 92 days, an unknown entity / action value, or an unrecognized parameter name). |
UNAUTHORIZED | 401 | Missing, invalid, or expired tenant / Authorization / X-API-Key |
FORBIDDEN | 403 | User lacks the required permission. |
RATE_LIMITED | 429 | Exceeded 10 req/min. |
INTERNAL_ERROR | 500 | Unexpected server error. |