> ## Documentation Index
> Fetch the complete documentation index at: https://facturas-sdk.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# facturas — Node.js SDK for ARCA/AFIP Electronic Invoicing

> Issue electronic invoices and credit notes against ARCA/AFIP directly from Node.js. ESM-only, no proxy, no external service required.

**facturas** is a TypeScript SDK that connects your Node.js application directly to Argentina's ARCA/AFIP tax authority — no proxy, no hosted service, no external database required for basic use. With a single `createArcaClient()` call and four environment variables, you can issue compliant electronic invoices and credit notes through WSFE or WSMTXCA, look up taxpayer data via Padrón, and handle safe retries with idempotency keys.

<CardGroup cols={2}>
  <Card title="Introduction" icon="book-open" href="introduction">
    Learn what facturas is, what it covers, and how it fits into your application.
  </Card>

  <Card title="Quick Start" icon="bolt" href="quickstart">
    Install the package and issue your first invoice in under five minutes.
  </Card>

  <Card title="ARCA Setup" icon="key" href="arca-setup">
    Generate credentials with the CLI and register them in ARCA's portal.
  </Card>

  <Card title="Configuration" icon="sliders" href="guides/configuration">
    Environment variables, client options, stores, logging, and timeouts.
  </Card>
</CardGroup>

## How onboarding works

<Steps>
  <Step title="Install facturas">
    Add the package to your project with your preferred package manager. Node.js 20 or later is required, and the package is ESM-only.

    ```bash theme={null}
    pnpm add facturas
    ```
  </Step>

  <Step title="Register your ARCA credentials">
    Use the built-in CLI to generate a private key and CSR, register them in ARCA's portal, and save your certificate. Run `npx facturas check` to confirm every layer is working before you write any application code.

    ```bash theme={null}
    npx facturas init --cuit 20123456786 --env test
    npx facturas check
    ```
  </Step>

  <Step title="Issue your first invoice">
    Set the four required environment variables, create a client, and call `arca.issue()`. No database or external service is needed to get started.

    ```ts theme={null}
    import { createArcaClient } from "facturas";

    const arca = createArcaClient();

    const factura = await arca.issue({
      issuer: "monotributo",
      salesPoint: 3,
      to: { condition: "consumidor_final" },
      items: [{ amount: 150_000 }], // ARS 1,500.00 in centavos (minor units)
    });
    ```
  </Step>
</Steps>

<Note>
  **facturas is pre-1.0.** While the version starts with `0.`, a minor release may change or remove parts of the public API. Pin the exact version in your `package.json` (e.g. `"facturas": "0.11.0"`) and read the [changelog](https://github.com/LaPyme/facturas/blob/main/packages/arca/CHANGELOG.md) before upgrading.
</Note>
