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

# Quickstart

> 5 minutos para emitir tu primera factura

Bienvenido al Quickstart de Factio. En esta guía, aprenderás a emitir tu primera factura electrónica válida ante el SRI en el entorno de pruebas (Sandbox).

### Requisitos previos

1. Una cuenta en [Factio](https://app.factioapp.com).
2. Un **Certificado Digital (.p12)** de firma electrónica y su respectiva contraseña.
3. Un **RUC** activo (puedes usar un RUC de prueba para el entorno Sandbox).

***

## 1. Obtener una API Key

Para interactuar con la API, necesitas una clave de autenticación.

1. Ve a **Configuración > API Keys** en tu panel de Factio.
2. Haz clic en **Crear API Key**.
3. Asegúrate de estar en el entorno **Sandbox** (la clave debe empezar con `fct_test_`).
4. Cópiala y guárdala en un lugar seguro.

<Snippet file="api-key-note" />

***

## 2. Subir tu certificado digital

Factio se encarga de firmar los XML por ti, pero necesita tu certificado digital vigente.

1. Ve a **Configuración > Certificados**.
2. Sube tu archivo `.p12` e ingresa la contraseña correspondiente.
3. Factio validará que la firma sea correcta y no esté expirada.

***

## 3. Configurar tu emisor y establecimiento

Antes de emitir, necesitas definir quién emite (Issuer) y desde dónde (Establishment & Emission Point).

1. En **Configuración > Perfil Fiscal**, verifica que tu RUC y Razón Social estén correctos.
2. Asegúrate de tener al menos un **Establecimiento** (ej. `001`) y un **Punto de Emisión** (ej. `001`) activos.
3. Verifica qué secuencial fiscal es el próximo a utilizar (Factio lo administra automáticamente).

***

## 4. Emitir la factura

¡Todo listo! Hagamos un request al endpoint de facturas. Este endpoint es asíncrono; Factio reservará el secuencial fiscal, firmará el XML en segundo plano y lo enviará al SRI.

```bash theme={null}
curl -X POST https://api.staging.factioapp.com/documents \
  -H "X-API-Key: fct_test_TU_API_KEY_AQUI" \
  -H "Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -d '{
    "document_type": "01",
    "issue_date": "2024-01-15",
    "issuer_id": "TU_ISSUER_ID",
    "establishment_id": "TU_ESTABLISHMENT_ID",
    "emission_point_id": "TU_EMISSION_POINT_ID",
    "buyer_id_type": "04",
    "buyer_id": "1792146739001",
    "buyer_name": "Empresa de Pruebas S.A.",
    "buyer_email": "pagos@empresadepruebas.com",
    "buyer_address": "Av. de los Shyris N35-17",
    "subtotal": "100.00",
    "total_discount": "0.00",
    "total_tax": "15.00",
    "total": "115.00",
    "lines": [
      {
        "code": "PROD-001",
        "description": "Servicio de Consultoría",
        "quantity": "1.00",
        "unit_price": "100.00",
        "discount": "0.00",
        "subtotal": "100.00",
        "taxes": [
          {
            "tax_code": "2",
            "tax_percentage_code": "4",
            "tax_rate": "15.00",
            "taxable_base": "100.00",
            "tax_amount": "15.00"
          }
        ]
      }
    ],
    "payments": [
      {
        "payment_method_code": "20",
        "total": "115.00"
      }
    ]
  }'
```

La respuesta será un `202 Accepted` con el ID del documento en proceso:

```json theme={null}
{
  "id": "doc_01HZ3K...",
  "status": "DRAFT",
  "sequential": "000000001",
  "message": "Document accepted for async processing"
}
```

<Snippet file="sandbox-note" />

***

## 5. Consultar el estado de la factura

Para saber si el SRI autorizó la factura, puedes hacer polling del documento usando su `id`.

```bash theme={null}
curl -X GET https://api.staging.factioapp.com/documents/doc_01HZ3K... \
  -H "X-API-Key: fct_test_TU_API_KEY_AQUI"
```

Si todo fue correcto, recibirás un status `AUTHORIZED` y el campo `authorization_number` con la clave de acceso oficial. Si hubo algún error con el SRI, el status será `REJECTED` o `MANUAL_REVIEW_REQUIRED`.

¡Felicidades! Has emitido tu primera factura en Factio.
