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

# Organización y referencias fiscales

> Cómo descubrir la organización autenticada, las alícuotas aceptadas y los comprobantes válidos para cada operación.

Estos endpoints permiten preparar ventas y compras sin copiar configuración
interna desde el dashboard:

* `GET /api/v1/organization` identifica la organización de la credencial.
* `GET /api/v1/tax-rates` lista los códigos de alícuota aceptados.
* `GET /api/v1/voucher-types` calcula los comprobantes válidos para una venta o
  compra concreta.

Los tres requieren `settings:read`. El scope permite leer estas referencias,
pero no modificar la configuración de la organización.

## Organización autenticada

`GET /api/v1/organization` devuelve una proyección segura con identidad,
domicilio fiscal, contacto, moneda por defecto y zona horaria operativa.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.lapyme.com.ar/api/v1/organization" \
    -H "Authorization: Bearer TU_API_KEY_AQUI"
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    "https://api.lapyme.com.ar/api/v1/organization",
    { headers: { Authorization: `Bearer ${process.env.LAPYME_API_KEY}` } }
  );

  const { data: organization } = await response.json();
  console.log(organization.id, organization.default_currency);
  ```

  ```python Python theme={null}
  import os
  import requests

  response = requests.get(
      "https://api.lapyme.com.ar/api/v1/organization",
      headers={"Authorization": f"Bearer {os.environ['LAPYME_API_KEY']}"},
      timeout=30,
  )

  organization = response.json()["data"]
  print(organization["id"], organization["default_currency"])
  ```
</CodeGroup>

La respuesta no expone `settings`, CBU, billing o suscripciones, plan y límites,
estado de onboarding, IDs internos de usuarios, roles, permisos, credenciales de
ARCA ni metadata de cuentas conectadas. `default_currency` es `PES` y `timezone`
es `UTC-3`: son defaults operativos documentados, no una copia del objeto de
configuración interno.

## Códigos de referencia e IDs

Los recursos propios de tu organización usan un `id` UUID, por ejemplo
`customer_id`, `supplier_id` y `point_of_sale_id`. Las referencias estatutarias
usan `code`, porque el valor lo define ARCA y no pertenece a una organización.

En particular, el `code` devuelto por `/tax-rates` es el mismo valor que los
payloads históricos llaman `tax_rate_id`:

```json theme={null}
{
  "object": "tax_rate_reference",
  "code": 5,
  "percentage": 21,
  "description": "21%"
}
```

No reemplaces ese código por un UUID ni calcules el código a partir del
porcentaje.

## Tipos de comprobante para ventas

Enviá `operation=sale`, `customer_id` y `point_of_sale_id`. La API resuelve la
condición fiscal, configuración de comprobantes A, habilitación de ARCA y acceso
al punto de venta dentro de la organización autenticada.

```bash theme={null}
curl --get "https://api.lapyme.com.ar/api/v1/voucher-types" \
  -H "Authorization: Bearer TU_API_KEY_AQUI" \
  --data-urlencode "operation=sale" \
  --data-urlencode "customer_id=550e8400-e29b-41d4-a716-446655440001" \
  --data-urlencode "point_of_sale_id=550e8400-e29b-41d4-a716-446655440002" \
  --data-urlencode "total_amount=500000000" \
  --data-urlencode "currency=PES"
```

`total_amount` es opcional. Si lo enviás, `currency` es obligatorio. Para
`currency=DOL`, también tenés que enviar `exchange_rate` como pesos argentinos
por dólar. Todos los importes monetarios usan unidades menores: centavos de PES
o centavos de DOL. El equivalente en PES se redondea al centavo antes de evaluar
el mínimo de una Factura de Crédito Electrónica (FCE).

Sin contexto de monto completo, sin un CBU válido o por debajo del mínimo legal,
las FCE no aparecen. Un punto de venta no fiscal o una organización todavía no
confirmada en ARCA recibe solamente las opciones no fiscales elegibles.

## Tipos de comprobante para compras

Para compras, enviá solamente `operation=purchase` y `supplier_id`:

```bash theme={null}
curl --get "https://api.lapyme.com.ar/api/v1/voucher-types" \
  -H "Authorization: Bearer TU_API_KEY_AQUI" \
  --data-urlencode "operation=purchase" \
  --data-urlencode "supplier_id=550e8400-e29b-41d4-a716-446655440003"
```

La API aplica la compatibilidad fiscal con el proveedor y las habilitaciones
reales de compra. No podés activar comprobantes de importación con un parámetro
del request. Los campos exclusivos de venta se rechazan para compras, y
viceversa.

<Warning>
  El resultado es una ayuda de descubrimiento. La escritura posterior vuelve a
  validar el comprobante dentro de la transacción porque la configuración, el
  monto o el estado fiscal pueden haber cambiado.
</Warning>

## Scopes canónicos y compatibilidad

Las integraciones nuevas deberían pedir los scopes más específicos:
`orders:*`, `payments:*`, `inventory:*`, `accounting:read` y `settings:read`.
Algunas operaciones siguen aceptando scopes anteriores de forma compatible,
por ejemplo `sales:read` para leer pedidos o `reports:read` para lecturas
contables. Esa alternativa aparece como
`x-accepted-legacy-scope-sets` en OpenAPI y está deprecada para credenciales
nuevas; no convierte un scope anterior en permiso global para otras familias.

## Por qué no hay `/currencies` ni `/capabilities`

La API V1 acepta las monedas contractuales estables `PES` y `DOL`; no son una
colección administrable que necesite un endpoint. Tampoco se publica un objeto
genérico de capabilities, porque sus booleanos quedarían rápidamente ambiguos.
Consultá la referencia contextual correspondiente y tratá la respuesta de cada
escritura como la validación definitiva.
