> For the complete documentation index, see [llms.txt](https://docs.afipsdk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.afipsdk.com/integracion/ai-builders/v0.md).

# v0

### Requisitos previos

Para poder seguir esta guía, primero necesitarás:

* [Obtener un access\_token de Afip SDK](https://app.afipsdk.com)
* Tener un proyecto Next.js generado con v0
* Definir el CUIT que vas a usar
* Elegir el Web Service ID, por ejemplo `wsfe` para factura electrónica

### 1. Configuración

v0 puede generar la UI y el código de Next.js. Para Afip SDK, la parte importante es que el access token quede en una variable de entorno privada y que la llamada se haga desde un Route Handler o Server Action.

{% tabs %}
{% tab title=".env.local" %}

```bash
AFIPSDK_ACCESS_TOKEN=TU_ACCESS_TOKEN
AFIPSDK_TAX_ID=20409378472
AFIPSDK_WSID=wsfe
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
No uses `NEXT_PUBLIC_` para el access token. Las variables con ese prefijo pueden quedar expuestas al navegador.
{% endhint %}

### 2. Crear la integración en v0

Pedile a v0 que genere una página y una ruta backend. El componente puede ser cliente para manejar el formulario, pero la llamada a Afip SDK debe vivir en `/api/afipsdk/web-service`.

{% tabs %}
{% tab title="Prompt" %}

```
Creá una app Next.js para integrar un web service de ARCA usando Afip SDK.

UI:
- Página simple con título "Consulta de Web Service ARCA".
- Formulario con CUIT, ambiente dev/prod y Web Service ID.
- Textarea para cargar el payload JSON del método que se va a ejecutar.
- Botón para ejecutar la consulta.
- Estados de loading, resultado y error.
- Validación visual si el JSON ingresado es inválido.

Backend:
- Crear un Route Handler en /api/afipsdk/web-service.
- El Route Handler debe leer process.env.AFIPSDK_ACCESS_TOKEN.
- No usar variables NEXT_PUBLIC_ para secrets.
- Primero llamar a POST https://app.afipsdk.com/api/v1/afip/auth.
- Enviar Authorization: Bearer TU_ACCESS_TOKEN.
- Enviar body JSON con environment, tax_id y wsid.
- Usar token y sign devueltos por Afip SDK para ejecutar el método del web service elegido según la documentación oficial.
- Devolver el resultado al frontend sin exponer AFIPSDK_ACCESS_TOKEN.

Variables de entorno:
- AFIPSDK_ACCESS_TOKEN: access token de Afip SDK.
- AFIPSDK_TAX_ID: CUIT por defecto, opcional.
- AFIPSDK_WSID: Web Service ID por defecto, opcional.

Reglas:
- No hardcodees credenciales.
- No expongas secrets al navegador.
- No inventes endpoints ni estructuras de respuesta.
- Usá la documentación oficial:
  - https://docs.afipsdk.com/integracion/api
  - https://docs.afipsdk.com/siguientes-pasos/web-services/
  - https://docs.afipsdk.com/siguientes-pasos/web-services/otro-web-service
  - https://afipsdk.com/docs/api-reference/introduction/
```

{% endtab %}
{% endtabs %}

### 3. Llamar al método del Web Service que necesites

Con el Route Handler creado ya podés realizar llamadas a los Web Services que necesites.

{% content-ref url="/pages/mVTz5YrKc8PCEeJKHt0W" %}
[Web services](/siguientes-pasos/web-services.md)
{% endcontent-ref %}

Si el Web Service que necesitás no se encuentra en la lista de la documentación, podés llamarlo siguiendo esta guía:

{% content-ref url="/pages/4zlCsTNGo99FZGfrhpZn" %}
[Otro web service](/siguientes-pasos/web-services/otro-web-service.md)
{% endcontent-ref %}

Podés usar la referencia de la API para obtener ejemplos de cómo usar los métodos de todos los web services de ARCA.

{% embed url="<https://afipsdk.com/docs/api-reference/introduction/>" %}

También podés usar las guías del blog de Afip SDK para v0:

{% embed url="<https://afipsdk.com/blog/category/v0/>" %}

***

### Usar tu propio certificado <sup><sub>(Opcional)<sub></sup>

Primero, obtenemos el certificado siguiendo esta guía.

{% embed url="<https://afipsdk.com/blog/como-obtener-certificado-para-web-services-arca/>" fullWidth="false" %}

Y luego agregá el certificado y la key como variables de entorno privadas.

{% tabs %}
{% tab title=".env.local" %}

```bash
AFIPSDK_CERT=-----BEGIN CERTIFICATE-----...
AFIPSDK_KEY=-----BEGIN RSA PRIVATE KEY-----...
```

{% endtab %}

{% tab title="Prompt adicional" %}

```
Actualizá el Route Handler /api/afipsdk/web-service para soportar certificado propio.

Reglas:
- Leer AFIPSDK_CERT y AFIPSDK_KEY desde variables de entorno privadas.
- No usar NEXT_PUBLIC_ para cert, key ni access token.
- Al llamar a POST /api/v1/afip/auth, incluir cert y key en el body si existen.
- Mantener el frontend sin acceso a secrets.
```

{% endtab %}
{% endtabs %}
