# Api

## General

Acceso datos instancia SQL Server A3ERP

## Muestra los endpoints de consulta de datos disponibles en la API

> Este endpoint devuelve una lista de los endpoints disponibles en la API.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}},"schemas":{"Error":{"type":"object","properties":{"classname":{"type":"string","description":"Código de error"},"detailedmessage":{"type":"string","description":"Mensaje de error"},"apperrorcode":{"type":"string","description":"Detalles del error"},"items":{"type":"string","description":"Detalles adicionales del error"},"statuscode":{"type":"integer","description":"Código de estado HTTP"},"reasonstring":{"type":"string","description":"Razón del error"},"message":{"type":"string","description":"Mensaje de error general"},"data":{"type":"object","description":"Datos adicionales relacionados con el error","additionalProperties":true}}}}},"paths":{"/api":{"get":{"summary":"Muestra los endpoints de consulta de datos disponibles en la API","description":"Este endpoint devuelve una lista de los endpoints disponibles en la API.\n","responses":{"200":{"description":"OK"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Campos

Visualización de campos devueltos en las vistas

## Muestra los campos disponibles en una vista

> Este endpoint devuelve los campos disponibles en una vista específica.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}}},"paths":{"/api/campos/{vista}":{"get":{"summary":"Muestra los campos disponibles en una vista","description":"Este endpoint devuelve los campos disponibles en una vista específica.\n","parameters":[{"name":"vista","in":"path","required":true,"description":"Nombre de la vista para la que se desean obtener los campos.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"campos":{"type":"array","items":{"type":"object","required":["NombreCampo","Tipo","Longitud","Descripcion","PermiteNulos","Cuadrado","Libreria"],"properties":{"NombreCampo":{"type":"string","description":"Nombre del campo"},"Tipo":{"type":"string","description":"Tipo de dato del campo"},"Longitud":{"type":"string","description":"Longitud del campo"},"Descripcion":{"type":"string","description":"Descripción del campo"},"PermiteNulos":{"type":"string","description":"T, F"},"Cuadrado":{"type":"string","description":"T, F"},"Libreria":{"type":"string","description":"Nombre de la librería del campo"}}}}}}}}}}}}}}
```

## Seguridad

API KEY fija obtenida por validación sobre maestros cliente, proveedor, transportista, representante, persona o API\_login.

## Logs

La API cuenta con un fichero log en la carpeta indicada en la configuración en la que se registran las incidencias y resultados de las llamadas a la API.

## Paginación

En todas las consultas se da la opción de consulta para obtener solamente el número de registros de la consulta y de poder paginar los resultados. Para esto debemos usar los parámetros de la cabecera de la consulta.

{% hint style="info" %}
La **paginación** y el **conteo de registros** pueden ser utilizadas en todas las consultas a la API pero solo el conteo es el que no se puede utilizar en **order,** la paginación necesita del **order** para que funcione.
{% endhint %}

## Numero de registros de un endpoint

> Este endpoint devuelve el número de registros de un endpoint específico. No se debe utilizar en la ruta con ordenación, ya que no es compatible con la paginación.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}},"schemas":{"Error":{"type":"object","properties":{"classname":{"type":"string","description":"Código de error"},"detailedmessage":{"type":"string","description":"Mensaje de error"},"apperrorcode":{"type":"string","description":"Detalles del error"},"items":{"type":"string","description":"Detalles adicionales del error"},"statuscode":{"type":"integer","description":"Código de estado HTTP"},"reasonstring":{"type":"string","description":"Razón del error"},"message":{"type":"string","description":"Mensaje de error general"},"data":{"type":"object","description":"Datos adicionales relacionados con el error","additionalProperties":true}}}}},"paths":{"/api/{endpoint}":{"get":{"summary":"Numero de registros de un endpoint","description":"Este endpoint devuelve el número de registros de un endpoint específico. No se debe utilizar en la ruta con ordenación, ya que no es compatible con la paginación.\n","parameters":[{"in":"path","name":"endpoint","required":true,"description":"Nombre del endpoint para el que se desea obtener el número de registros.","schema":{"type":"string"}},{"in":"header","name":"contar","description":"Indica si se debe contar el número de registros del endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"registros":{"type":"integer","description":"Número de registros del endpoint"}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Paginacion de un endpoint

> Este endpoint devuelve los registros de un endpoint específico con paginación y ordenación. \
> No se debe utilizar en la ruta con el número de registros, ya que no es compatible con la paginación.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}},"schemas":{"Error":{"type":"object","properties":{"classname":{"type":"string","description":"Código de error"},"detailedmessage":{"type":"string","description":"Mensaje de error"},"apperrorcode":{"type":"string","description":"Detalles del error"},"items":{"type":"string","description":"Detalles adicionales del error"},"statuscode":{"type":"integer","description":"Código de estado HTTP"},"reasonstring":{"type":"string","description":"Razón del error"},"message":{"type":"string","description":"Mensaje de error general"},"data":{"type":"object","description":"Datos adicionales relacionados con el error","additionalProperties":true}}}}},"paths":{"/api/{endpoint}/order/{columna} {orden}":{"get":{"summary":"Paginacion de un endpoint","description":"Este endpoint devuelve los registros de un endpoint específico con paginación y ordenación. \nNo se debe utilizar en la ruta con el número de registros, ya que no es compatible con la paginación.\n","parameters":[{"in":"path","name":"endpoint","description":"Nombre del endpoint para el que se desea obtener los registros.","required":true,"schema":{"type":"string"}},{"in":"path","name":"columna","description":"Nombre de la columna por la que se desea ordenar.","required":true,"schema":{"type":"string"}},{"in":"path","name":"orden","description":"Ordenación de los registros (ascendente o descendente).","required":true,"schema":{"type":"string","enum":["asc","desc"]}},{"in":"header","name":"Page","description":"Número de pagina a partir de la cual devuelve resultados.","required":true,"schema":{"type":"integer"}},{"in":"header","name":"PageSize","description":"Número máximo de registros a devolver.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Ordenación y Filtrado <a href="#ordenacion-y-filtrado" id="ordenacion-y-filtrado"></a>

En muchas consultas puedes ordenar por un parámetro el resultado devuelto o filtrar por unos parámetros, ambos pueden ser utilizados al mismo tiempo.

## Ordenación de un endpoint

> Este endpoint devuelve los registros de un endpoint específico con ordenación.\
> No se debe utilizar en la ruta con el número de registros, ya que no es compatible.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}},"schemas":{"Error":{"type":"object","properties":{"classname":{"type":"string","description":"Código de error"},"detailedmessage":{"type":"string","description":"Mensaje de error"},"apperrorcode":{"type":"string","description":"Detalles del error"},"items":{"type":"string","description":"Detalles adicionales del error"},"statuscode":{"type":"integer","description":"Código de estado HTTP"},"reasonstring":{"type":"string","description":"Razón del error"},"message":{"type":"string","description":"Mensaje de error general"},"data":{"type":"object","description":"Datos adicionales relacionados con el error","additionalProperties":true}}}}},"paths":{"/api/{endpoint}/order/{order}":{"get":{"summary":"Ordenación de un endpoint","description":"Este endpoint devuelve los registros de un endpoint específico con ordenación.\nNo se debe utilizar en la ruta con el número de registros, ya que no es compatible.\n","parameters":[{"in":"path","name":"endpoint","description":"Nombre del endpoint para el que se desea obtener los registros.","required":true,"schema":{"type":"string"}},{"in":"path","name":"order","description":"Ordenación de los registros (ascendente o descendente).","required":true,"schema":{"type":"string","enum":["asc","desc"]}},{"in":"header","name":"Page","description":"Número de pagina a partir de la cual devuelve resultados.","required":true,"schema":{"type":"integer"}},{"in":"header","name":"PageSize","description":"Número máximo de registros a devolver.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Filtrado

> Añadiendo un filtro SQL permite filtrar los registros de un endpoint específico.<br>

```json
{"openapi":"3.0.3","info":{"title":"API Title","version":"1.0"},"servers":[{"url":"{protocol}://{domain}:{port}","description":"Introduce el dominio y puerto del servidor API.","variables":{"domain":{"default":"<domain>","description":"El dominio del servidor API"},"port":{"default":"<port>","description":"El puerto del servidor API"},"protocol":{"default":"https","description":"El esquema del servidor API (http o https)"}}}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Autenticación mediante token JWT. El token debe ser incluido en el encabezado de autorización de la solicitud.\n"}},"schemas":{"Error":{"type":"object","properties":{"classname":{"type":"string","description":"Código de error"},"detailedmessage":{"type":"string","description":"Mensaje de error"},"apperrorcode":{"type":"string","description":"Detalles del error"},"items":{"type":"string","description":"Detalles adicionales del error"},"statuscode":{"type":"integer","description":"Código de estado HTTP"},"reasonstring":{"type":"string","description":"Razón del error"},"message":{"type":"string","description":"Mensaje de error general"},"data":{"type":"object","description":"Datos adicionales relacionados con el error","additionalProperties":true}}}}},"paths":{"/api/{endpoint}/filtro/{filtro}":{"get":{"summary":"Filtrado","description":"Añadiendo un filtro SQL permite filtrar los registros de un endpoint específico.\n","parameters":[{"in":"path","name":"endpoint","description":"Nombre del endpoint para el que se desea obtener los registros.","required":true,"schema":{"type":"string"}},{"in":"path","name":"filtro","description":"Filtro SQL para aplicar a los registros.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Campos de la Base de Datos

Aquí tienes una lista con todos los campos de A3 y sus tipos y definiciones, estos campos están agrupados por tabla y no por vista por lo que su nombre puede no coincidir, en ese caso pregunte a su proveedor de A3 para mas información, adicionalmente algunos campos no son modificables una vez creados, en ese caso la api devolverá un erro controlado con el campo no modificable.

{% file src="/files/sI1vu559Oaprg08JQp5g" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://a3erpapi.appcloud.es/documentacion/api-basicos/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
