> ## Documentation Index
> Fetch the complete documentation index at: https://docs.facture.ar/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference

> Referencia de la API de Facturear: autenticación con API Key, URL base, entornos de testing y producción, y formato de los errores.

# API Reference

La API de Facturear te deja emitir facturas electrónicas de ARCA desde tu propio sistema, consultar su resultado, descargar el PDF y el XML, mandarlas por email y administrar tus CUITs, borradores y webhooks. En la sección **API Endpoints** está cada operación con sus parámetros y respuestas.

## Autenticación

Cada pedido lleva tu API Key en el header `x-api-key`:

```bash theme={null}
curl https://www.facture.ar/api/invoices \
  -H "x-api-key: test_sk_..."
```

Sin key, o con una key que ya no es válida, la API responde `401` con `code: "unauthorized"`.

### Una key por entorno

La URL es la misma para los dos entornos. El entorno lo decide la key:

| Prefijo | Entorno | Qué hace |
| - | - | - |
| `test_sk_` | Testing (homologación de ARCA) | Emite comprobantes de prueba, sin validez fiscal |
| `prod_sk_` | Producción | Emite comprobantes reales, con validez fiscal |

Con una API Key, el header `x-environment` y el parámetro `environment` se ignoran.

<Warning>
  Las facturas que emitís con la key de producción son reales. Para probar, usá la key de testing. Ver [Entorno de testing](/es/guides/entorno-testing).
</Warning>

### Obtener tu API Key

1. Entrá a tu cuenta en [facture.ar](https://www.facture.ar)
2. En el menú lateral, en **Desarrolladores**, entrá a **Claves API**
3. En la tarjeta **Producción** o **Testing**, tocá **Generar clave**
4. Copiala con **Copiar** y guardala en un lugar seguro

La key completa se muestra **una sola vez**, cuando la generás: Facturear guarda solo un hash, así que después en el panel ves apenas el principio y el final (`prod_sk_…1a2b`). Si la perdiste, regenerala.

Con **Regenerar** obtenés una key nueva: la anterior deja de funcionar en el acto. Ver [API Keys](/es/guides/api-keys).

## URL base

```
https://www.facture.ar/api
```

Usá siempre la dirección con `www`. Si llamás a `facture.ar` sin `www` y el pedido pasa por una redirección, algunos clientes HTTP convierten el `POST` en `GET` o pierden el body.

## Errores

Los errores de autenticación, de validación y los internos siguen el formato **RFC 9457** (`Content-Type: application/problem+json`):

```json theme={null}
{
  "type": "https://www.facture.ar/problems/invalid_request",
  "title": "Bad Request",
  "status": 400,
  "code": "invalid_request",
  "detail": "Content-Type must be application/json or application/xml",
  "error": "Content-Type must be application/json or application/xml",
  "message": "Content-Type must be application/json or application/xml",
  "resolution": "Compare the body with https://www.facture.ar/openapi.json and resend the corrected fields."
}
```

| Campo | Qué es |
| - | - |
| `code` | Código estable para tu programa: `unauthorized` (401), `invalid_request` (400), `cuit_not_found` (404), `conflict` (409), `internal_error` (500) |
| `message` / `detail` | Qué pasó, en texto |
| `resolution` | Qué hacer para resolverlo |
| `error` | El mismo texto de siempre, para los clientes que ya leían `error` |

Los errores de `Idempotency-Key` también traen un `code` propio: `IDEMPOTENCY_KEY_INVALID` (400), `IDEMPOTENCY_KEY_IN_PROGRESS` (409) e `IDEMPOTENCY_KEY_REUSED` (422). Ver [Reintentar sin duplicar facturas](/es/guides/idempotencia).

Algunas respuestas todavía son JSON común con `error` y, a veces, `details` y `code`. Por ejemplo, al superar el límite de tu plan la API responde `403` con `code: "SUBSCRIPTION_LIMIT_EXCEEDED"`. En los dos formatos siempre está `error`, así que leer ese campo te sirve para todos los casos.

## Especificación OpenAPI

La sección **API Endpoints** sale de la especificación completa de esta documentación. Además, la app publica en [`https://www.facture.ar/openapi.json`](https://www.facture.ar/openapi.json) una versión reducida pensada para agentes de IA: crear y listar facturas, anular con nota de crédito y los documentos públicos de descubrimiento (`/api/v1`, `/api/v1/sandbox`). Es la que citan los mensajes de error en `resolution`.

## Playground

Cada endpoint de la sección **API Endpoints** tiene un playground para mandar el pedido desde la documentación. Ver [Playground](/es/api-reference/playground).

## Soporte

Si necesitás ayuda con la API, escribinos a **[support@facture.ar](mailto:support@facture.ar)** o por el chat del panel.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.