> For the complete documentation index, see [llms.txt](https://b2chat.gitbook.io/b2chat-api-mensajeria-whatsapp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://b2chat.gitbook.io/b2chat-api-mensajeria-whatsapp/como-empezar/acceso-al-api.md).

# Acceso al API

Cómo autenticarte y obtener tu token de acceso

Antes de hacer cualquier llamada a la API, necesitas autenticarte. La API de Mensajería WhatsApp de B2Chat usa **OAuth 2.0** con el flujo de credenciales de cliente — el estándar más seguro para integraciones entre sistemas, donde no hay un usuario humano que inicie sesión, sino que tu sistema se autentica directamente con sus propias credenciales.

#### ¿Cómo funciona?

El proceso es simple: tu sistema le presenta sus credenciales a B2Chat, y B2Chat le devuelve un token de acceso temporal. Ese token es el que debes incluir en todas tus solicitudes posteriores para que la API sepa que eres tú.

<figure><img src="https://3932280196-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fbm4dNF9gRbjYWmhpUlmL%2Fuploads%2F5Eow2q1VYjIp9zyLN6lN%2Fflujo_autenticacion_v2.png?alt=media&amp;token=f5e50f9e-61dd-4179-a46f-d181e72c9a8d" alt=""><figcaption></figcaption></figure>

***

#### Tus credenciales

Para generar un token, debes solicitar tus credenciales al equipo de soporte en **<support@b2chat.io>** o diligenciar siguiente formulario:&#x20;

<a href="https://docs.google.com/forms/d/e/1FAIpQLScPlo78mBQuk1UW25fZDK7C8xC2I1cuPEbrO4UlrLeT5qx3Xg/viewform" class="button secondary" data-icon="link">Solicitar acceso al API</a>\
\
Estas credenciales son únicas por cada línea de WhatsApp registrada.

<table><thead><tr><th width="195">Credencial</th><th>Descripción</th></tr></thead><tbody><tr><td><code>client_id</code></td><td>Identificador único de tu aplicación</td></tr><tr><td><code>client_secret</code></td><td>Clave secreta asociada a tu <code>client_id</code></td></tr><tr><td><code>authUrl</code></td><td>URL del servidor de autenticación: <code>https://authwabsp.b2chat.io/oauth2/token</code></td></tr></tbody></table>

{% hint style="warning" %}
*Nunca expongas tu `client_secret` en aplicaciones del lado del cliente como apps móviles o sitios web. Úsalo únicamente en entornos de servidor seguros*
{% endhint %}

***

#### Obtener un token de acceso

Realiza una solicitud `POST` al servidor de autenticación usando **HTTP Basic Auth** — tu `client_id` como usuario y tu `client_secret` como contraseña — con el parámetro `grant_type=client_credentials` en el cuerpo.

## POST /oauth2/token

>

```json
{"openapi":"3.0.3","info":{"title":"B2Chat WhatsApp Cloud API","version":"0.0.1"},"tags":[{"name":"Authentication","description":"Obtain access tokens using OAuth2 client credentials flow"}],"servers":[{"url":"https://authwabsp.b2chat.io","description":"Authentication server"}],"security":[{"BasicAuth":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"TokenResponse":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string"},"expires_in":{"type":"integer"}}}}},"paths":{"/oauth2/token":{"post":{"tags":["Authentication"],"operationId":"authenticate","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["grant_type"],"properties":{"grant_type":{"type":"string","enum":["client_credentials"]}}}}}},"responses":{"200":{"description":"Access token retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"401":{"description":"Unauthorized – invalid client credentials"}}}}}}
```

***

#### Usar el token en tus solicitudes

Una vez obtenido el token, inclúyelo en el encabezado `Authorization` de cada solicitud a la API:

```bash
curl --location 'https://wabsp.b2chat.io/messages' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data '{ ... }'
```

***

#### Renovación del token

El token tiene una vigencia de **24 horas** desde su generación. Cuando expire, cualquier solicitud que hagas recibirá una respuesta `401 Unauthorized`. En ese caso, simplemente repite el proceso de autenticación para obtener uno nuevo.

{% hint style="success" %}
*Se recomienda implementar en tu sistema una lógica de renovación automática antes de que el token expire, para evitar interrupciones en tu integración.*
{% endhint %}
