# API

### Requisitos previos

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

* [Obtener un access\_token de Afip SDK](https://app.afipsdk.com)

### Básicos

La URL base de la API es:

```url
https://app.afipsdk.com/api/
```

El body de las peticiones es de tipo JSON. Se debe agregar el header correspondiente:

```http
Content-Type: application/json
```

Además, debes agregar el header de autorización con tu access\_token

```http
Authorization: Bearer TU_ACCESS_TOKEN_AQUI
```

### 1. Obtener el Ticket de Acceso (TA)

Antes de llamar a los Web Services de ARCA, necesitás un ticket de acceso (TA), también llamado Token Authorization.

Este TA expira tras un tiempo, pero no tenés que preocuparte por renovarlo: Afip SDK lo cachea y solicita uno nuevo automáticamente si es necesario. Solo llamá a la API y Afip SDK te devuelve el TA correspondiente.

Para obtener el TA se necesita un certificado digital, pero con Afip SDK podés empezar en modo desarrollo usando el CUIT 20-40937847-2 sin necesidad de uno.

Si preferís [usar tu propio certificado](#usar-tu-propio-certificado-opcional), al final te mostramos cómo.

**Endpoint**

<mark style="color:blue;">`POST`</mark> `https://app.afipsdk.com/api/v1/afip/auth`

**Body**

<table><thead><tr><th width="146.5">Nombre</th><th width="96.5">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td><code>environment</code></td><td>string</td><td>Usar <code>dev</code> para ambiente de desarrollo o <code>prod</code> para producción.</td></tr><tr><td><code>tax_id</code></td><td>string</td><td>CUIT para el cual queremos obtener el TA.</td></tr><tr><td><code>wsid</code></td><td>string</td><td>ID del Web Service a utilizar. Lo encontrás al inicio de la documentación de Afip SDK de cada Web Service o en el manual PDF de ARCA.</td></tr><tr><td><code>force_create</code></td><td>boolean</td><td><code>default: false</code><br><br>Se debe setear en <code>true</code> si queremos forzar la creación de un nuevo TA.<br><br><a href="/pages/DexL0nExV0sSrFtkKL4C#forzar-la-solicitud-de-un-nuevo-ta">Mas información</a></td></tr><tr><td><code>cert</code></td><td>string</td><td>Certificado digital.</td></tr><tr><td><code>key</code></td><td>string</td><td>Key del certificado.</td></tr></tbody></table>

**Ejemplo**

```json
{
    "environment": "dev",
    "tax_id": "20409378472",
    "wsid": "wsfe"
}
```

**Response**

<mark style="color:green;">`STATUS`</mark> `200`

```json
{
    "expiration": "2024-03-13T00:42:59.845Z",
    "token": "PD94bWwgd...",
    "sign": "kEaCwSs36hpe..."
}
```

`token` y `sign` corresponden el TA que nos da ARCA. Debemos enviar estos datos en el body de cada solicitud a los Web Services. En el manual de cada Web Service verás dónde colocarlos.

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

Con el TA ya podés realizar las 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 API:

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

***

### 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" %}

Al pedir la autorización agregamos `cert` y `key` en el body

{% tabs %}
{% tab title="API Request" %} <mark style="color:blue;">`POST`</mark> `https://app.afipsdk.com/api/v1/afip/auth`

```json
{
    "environment": "dev",
    "tax_id": "20111111112",
    "wsid": "wsfe",
    "cert": "-----BEGIN CERTIFICATE-----MIIDRzC...",
    "key": "-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCA..."
}
```

{% endtab %}
{% endtabs %}


---

# 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.afipsdk.com/integracion/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.
