# Descripción general de las APIs

## Autenticación

Boolfy utiliza claves API para autenticar las solicitudes. Puedes ver y administrar tus claves desde API Keys en el administrador de Boolfy.

Tus claves API conllevan muchos privilegios, así que asegúrate de mantenerlas seguras. No compartas tus claves API secretas en áreas de acceso público, como GitHub, código del lado del cliente, etc.

Todas las solicitudes de API deben realizarse a través de HTTPS. Las llamadas realizadas a través de HTTP simple fallarán. Las solicitudes de API sin autenticación también fallarán.

Aquí hay un ejemplo de una invocación genérica de cURL, con la carga contenida en `payload.json`:

```
curl "https://agents.boolfy.com/api/documents/$method" \ 
    -H "Authorization: Bearer BOOLFY_BEARER_KEY" \
    -H "Content-Type: application/json" \
    -d @payload.json
```

## Boolfy Bearer Key <a href="#h3-5" id="h3-5"></a>

La autenticación Bearer de Boolfy utiliza una cadena que es el resultado de la siguiente concatenación:

```
Boolfy_Bearer_Key = Enterprise Id + "_" + Key + "_" + Private Key
//Por ej: 2_25874125_454gdf-rge24ger-erg5er4-rs2s2
```

## Api Keys <a href="#h3-5" id="h3-5"></a>

Dentro de Boolfy Document Assistant podrás crear o te proporcionaran las credenciales de acceso de la Api Key.&#x20;

<figure><img src="https://143018119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkM1sjIIYYl6C0d7jcyPF%2Fuploads%2Fhwxd3Ab5JyOys8w26NGP%2FAPI.png?alt=media&#x26;token=a710f112-5e1b-4da0-bfc9-b796b979902e" alt=""><figcaption><p>Datos de la Api Key</p></figcaption></figure>

A continuación detallamos los principales datos de la Api key

<table><thead><tr><th width="201">Campo</th><th>Descripción</th></tr></thead><tbody><tr><td>Enterprise</td><td>Especifica la empresa a la cual pertenece el Api Key</td></tr><tr><td>Name</td><td>Especifica el nombre de la Api Key. Este nombre lo podrás utilizar en WorkFlows.</td></tr><tr><td>Key</td><td>Especifica la clave pública de acceso</td></tr><tr><td>Private Key</td><td>Especifica la clave privada de acceso</td></tr></tbody></table>

## Solicitudes <a href="#h3-5" id="h3-5"></a>

Cualquier solicitud debe tener su tipo de contenido establecido en `application/json` y el payload debe enviarse en el cuerpo de la solicitud.

La estructura genérica para el endpoint de API es: `https://agents.boolfy.com/api/<api>/<method>`

Por ejemplo, el endpoint para subir documentos es: `https://agents.boolfy.com/api/documents/upload`

## APIs disponibles <a href="#h3-5" id="h3-5"></a>

Echa un vistazo a las API disponibles actualmente:

<table><thead><tr><th width="532">API</th><th>Path</th></tr></thead><tbody><tr><td><a href="documents"><strong>Documents</strong> </a>Permite gestionar documentos</td><td>documents</td></tr><tr><td><a href="suppliers"><strong>Suppliers</strong> </a>Permite obtener los datos de los proveedores</td><td>suppliers</td></tr></tbody></table>

## Respuestas <a href="#h3-5" id="h3-5"></a>

Las respuestas, cuando están presentes, se envían en formato JSON (tipo de contenido `application/json`).

El formato de respuesta general de todas las APIs es el siguiente:

```json
{
    "code": 200,
    "msg": "mensaje variable"
    "response": "contenido variable"
}
```

## Códigos de respuesta

A continuación detallamos los códigos de respuesta posibles para cada solicutd.

<table><thead><tr><th width="152" data-type="number">Code</th><th width="229">Nombre</th><th>Significado</th></tr></thead><tbody><tr><td>200</td><td>Ok</td><td>Operación realizada exitosamente</td></tr><tr><td>400</td><td>Bad request</td><td>Solicitud con formato incorrecto</td></tr><tr><td>402</td><td>Authentication failed</td><td>ApiKey inválida o no provista</td></tr><tr><td>403</td><td>Method not found</td><td>El método no existe o no es válido</td></tr><tr><td>404</td><td>Not found</td><td>El registro solicitado no existe</td></tr><tr><td>500</td><td>Internal server error</td><td>Error del servidor durante el procesamiento</td></tr></tbody></table>

## Estados de revisión

Los documentos, entre otros, pueden tener los siguientes estados.

<table><thead><tr><th width="168">Valor</th><th>Descripción</th></tr></thead><tbody><tr><td>Draft</td><td>Borrador. Es el estado inicial del documento</td></tr><tr><td>Revised</td><td>Revisado. Opcional. Representa que se ha realizado la revisión del documento</td></tr><tr><td>Rejected</td><td>Rechazado. Opcional. Representa que se ha rechazado el documento</td></tr><tr><td>Approved</td><td>Aprobado. Opcional. Representa que se ha aprobado el documento</td></tr></tbody></table>

## Estados del proceso

El procesamiento del documento puede tener los siguientes estados.

<table><thead><tr><th width="170">Valor</th><th>Descripción</th></tr></thead><tbody><tr><td>Joined</td><td>Ingresado. Es el estado inicial del documento cuando ingresa Boolfy.</td></tr><tr><td>Processing</td><td>Procesando. Es cuando se esta analizando y procesando el documento.</td></tr><tr><td>Excluded</td><td>Excluido. Se establece cuando existen errores de formato en el documento.</td></tr><tr><td>Finished</td><td>Finalizado. Se establece cuando se termina de procesar el documento.</td></tr><tr><td>Sended</td><td><p>Enviado. Se establece en forma automática cuando se invoca al método <a href="documents/getinfo">GetInfo </a>o <a href="documents/list">List</a> y  el documento se encuentra entre estos registros. También se establece de forma automática cuando se realiza una descarga desde la plataforma en formato: JSON, CSV o XML y cuando se realiza una descarga por aplicación. Una vez establecido el documento en Sended, no puede cambiarse.</p><p><strong>Nota:</strong> La asignación automática del estado Sended facilita el método de sincronización con terceros. Idealmente se puede consumir el método <a href="documents/list">List</a> sin filtro por estado, para obtener los documentos que faltan sincronizar.</p></td></tr></tbody></table>

## Postman collection

Te dejamos un [postman collection](https://boolfy.com/BoolfyAgents.postman_collection.json) con todos los métodos de la API para que puedas realizar tus pruebas.


---

# 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://docs-agents-api.boolfy.com/descripcion-general-de-las-apis.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.
