# 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="../../recursos/otros-metodos-utiles#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="../siguientes-pasos/web-services" %}
[web-services](https://docs.afipsdk.com/siguientes-pasos/web-services)
{% 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="../siguientes-pasos/web-services/otro-web-service" %}
[otro-web-service](https://docs.afipsdk.com/siguientes-pasos/web-services/otro-web-service)
{% 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 %}
