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

# Registro de Facturas en el ERP

> Cómo integrar Payana con tu ERP para registrar facturas de proveedores automáticamente.

Payana recibe facturas desde la entidad fiscal (DIAN/SAT) y permite causarlas — es decir, completar los datos contables y registrarlas en tu ERP — de forma manual o con un agente.

<Frame>
  <img src="https://mintcdn.com/payana/-D5VQTg6IjbEyzm6/images/causacion-formulario.png?fit=max&auto=format&n=-D5VQTg6IjbEyzm6&q=85&s=203c4a340f3c7178e4bbcec6843cae90" alt="Formulario de causación en Payana" width="2938" height="1438" data-path="images/causacion-formulario.png" />
</Frame>

Para habilitar este flujo, tu empresa necesita implementar dos integraciones:

1. **Sincronización del catálogo**: enviá a Payana los datos maestros de tu ERP (proveedores, cuentas contables, impuestos, centros de costo, órdenes de compra, etc.) para que el formulario de causación pueda usarlos.
2. **Webhook de causación**: cuando el proceso finaliza en Payana, recibís un webhook con toda la información del comprobante para ingresarla en tu ERP.

```mermaid theme={null}
flowchart LR

subgraph ERP
  OC[Órdenes de Compra]
  F[Factura]
  C[Catálogo]
end

subgraph Payana
  DIAN[DIAN/SAT]
  P["Ingreso de facturas<br/>manual/agéntica"]
end

C -.->|API| P
OC -.->|API| P
DIAN --> P
P -->|Webhook| F
```

***

## 1. Sincronización del catálogo

Payana expone un endpoint por cada entidad del catálogo. Tu sistema es responsable de mantenerlas actualizadas; la frecuencia depende de cuánto cambie tu catálogo.

Las entidades a sincronizar son:

| Entidad             | Descripción                       |
| ------------------- | --------------------------------- |
| Centros de costo    | Centros de costo contables        |
| Proveedores         | Proveedores registrados en el ERP |
| Productos           | Productos y servicios             |
| Impuestos           | IVA, retenciones, etc.            |
| Cuentas contables   | Plan de cuentas                   |
| Condiciones de pago | Plazos y formas de pago           |
| Órdenes de compra   | POs para cruzar contra facturas   |

### Ejemplo: centros de costo

Enviá los centros de costo de tu ERP a Payana con un `POST` por cada registro, o en lote con `items`.

```http theme={null}
POST /api/v1/erp/cost-centers
Authorization: ApiKey {company_api_key}
Content-Type: application/json
```

```json theme={null}
{
  "items": [
    {
      "external_id": "CC-001",
      "code": "ADM",
      "name": "Administración",
      "description": "Gastos administrativos generales"
    },
    {
      "external_id": "CC-002",
      "code": "VTA",
      "name": "Ventas",
      "parent_external_id": "CC-001"
    }
  ]
}
```

| Campo                | Tipo   | Requerido | Descripción                                          |
| -------------------- | ------ | --------- | ---------------------------------------------------- |
| `external_id`        | string | Sí        | ID del centro de costo en tu ERP                     |
| `code`               | string | No        | Código corto                                         |
| `name`               | string | Sí        | Nombre del centro de costo                           |
| `description`        | string | No        | Descripción opcional                                 |
| `parent_external_id` | string | No        | `external_id` del padre para estructuras jerárquicas |

**Respuesta**

```json theme={null}
{
  "synced": 2,
  "errors": []
}
```

<Info>
  Si un `external_id` ya existe, Payana actualizará el registro. Si no existe, lo creará.
</Info>

***

## 2. Recepción del webhook de causación

Cuando el proceso de causación finaliza en Payana, se dispara un webhook con la información completa del comprobante. Tu sistema debe recibirlo y registrar la factura en el ERP.

<Card title="Webhook: Documento Causado" icon="webhook" href="/api-reference/documents/webhooks/documento-causado">
  Ver la referencia completa del payload del webhook.
</Card>

<Info>
  Asegurate de responder con un `HTTP 200` para confirmar la recepción. Si Payana no recibe confirmación, reintentará el envío.
</Info>

***

## Próximos pasos

* [Introducción a la API](/api-reference/introduction)
* [Webhook: Documento Causado](/api-reference/documents/webhooks/documento-causado)
* [Listar Documentos](/api-reference/documents/list)
