# SDK y Uso del API directamente

### SDK

El SDK esconde la implementación de las solicitudes y la autenticación, haciendo que te sea más fácil usar nuestros servicios. Actualmente está disponible en: Java, PHP, .NET2, .NET4, Python y Node

Los ejemplos de este documento están en Node pero son muy parecidos para los demás lenguajes, te proporcionaremos varios ejemplos para que puedas comenzar a probar rápidamente.

```javascript
//esto es sólo para pruebas
//te recomendamos que cargues tus credenciales
//desde un archivo externo o desde el ambiente
//de producción
const webId = "mBS73C5TdTjthjF0"
const apiKey = "521026f468b9dadc2419e476356934d0"

const AcertiaServices = AcertiaServices(webId, apiKey);
```

Si el SDK no está implementado en el lenguaje de programación que utilizas, puedes llamar al API directamente (ve "Usando el API directamente"), o contáctanos en <developers@acertia.com> para más información.

### Uso del API directamente

Si el SDK no está implementado en el lenguaje de programación que utilizas, puedes mandar llamar al API directamente. El API es un grupo de endpoints que aceptan solicitudes JSON que contienen un encabezado de autenticación. Abajo se encuentra una descripción básica de como trabaja, pero nos puedes contactar en <developers@acertia.com> para cualquier duda que tengas

#### Encabezado de autenticación

Cada solicitud al API debe tener un `Content-Type:application/json` y un encabezado de autenticación que nos permite verificar que eres un usuario autorizado y que la solicitud no ha sido cambiada por un tercero. El encabezado está formado de la siguiente manera:

1. **Identificador**: el encabezado tiene que iniciar con "Authorization: signmage".
2. **WebId**: el WebId que te fue asignado como desarrollador.
3. **Separador**: entre el WebId y el HMAC tiene que haber un símbolo ":".
4. **HMAC**: un SHA-256 HMAC en base64 generado con los parámetros JSON de la solicitud y el API Key como el secreto. El JSON debe ser válido y sin espacios.

#### API endpoints

1. <https://acertia.mx/developers/button>: Para todas las solicitudes que resulten en un documento para ser firmado.
2. <https://acertia.mx/developers/template/save>: Para guardar un template y poder utilizarlo después para generar un documento.
3. <https://acertia.mx/developers/webhook>: Para solicitar más información al momento de recibir una notificación a un webhook.
4. <https://acertia.mx/developers/docs>: Para acciones que apliquen sobre un documento en específico.


---

# 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.acertia.mx/sdk-y-uso-del-api-directamente.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.
