https://github.com/tmigone/invoicy
https://github.com/tmigone/invoicy
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tmigone/invoicy
- Owner: tmigone
- Created: 2026-03-30T21:37:09.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-05-08T02:20:16.000Z (3 months ago)
- Last Synced: 2026-05-08T04:14:06.887Z (3 months ago)
- Language: Rust
- Size: 86.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# invoicy
A CLI tool for generating PDF invoices from TOML configuration files using Typst templates.
## Features
- Generate PDF invoices from simple TOML configs
- Multiple invoice formats:
- `generic` - Simple international invoice
- `afip_c` - Argentina AFIP Factura C (Monotributo)
- `afip_a` - Argentina AFIP Factura A (Responsable Inscripto)
- Override config values via CLI (`--set key=value`)
- Customizable templates via Typst
- Single self-contained binary
## Installation
```bash
curl -fsSL https://raw.githubusercontent.com/tmigone/invoicy/main/install.sh | sh
```
Or download binaries directly from [GitHub Releases](https://github.com/tmigone/invoicy/releases).
### Build from source
```bash
cargo build --release
```
## Usage
```bash
# Generate invoice using built-in template
invoicy generate -c invoice.toml
# Generate with custom output path
invoicy generate -c invoice.toml -o my-invoice.pdf
# Use a custom template
invoicy generate -c invoice.toml -t my-template.typ
# Override config values (useful for automation)
invoicy generate -c base.toml --set comprobante.numero=00000153
# List available formats
invoicy schema list
# Show schema for a format (useful for discovering --set keys)
invoicy schema generic
invoicy schema afip_c
```
## Configuration
Create a TOML file with your invoice data. The `format` field determines which template to use.
### Generic Invoice
```toml
format = "generic"
[company]
name = "Acme Corp"
address = "123 Business Ave"
address2 = ""
city_state_zip = "New York, NY, 10001"
country = "United States"
[client]
name = "Client Inc"
address = "456 Commerce St"
address2 = ""
city_state_zip = "Los Angeles, CA, 90001"
country = "United States"
tax_id = "12-3456789"
[invoice]
number = "INV-2025.001"
date = "Mar 30 2025"
due_date = "Apr 14 2025"
currency = "USD"
[[items]]
description = "Consulting Services"
rate = 5000.00
```
### AFIP Factura C (Argentina)
```toml
format = "afip_c"
[emisor]
razon_social = "Juan Pérez"
domicilio_comercial = "Av. Corrientes 1234 - CABA"
condicion_iva = "Responsable Monotributo"
cuit = "20123456789"
ingresos_brutos = "12345"
inicio_actividades = "01/01/2020"
[receptor]
nombre = "Cliente SA"
domicilio = "Calle Falsa 123"
documento = "30123456789"
condicion_iva = "Consumidor Final"
condicion_venta = "Cuenta Corriente"
[comprobante]
tipo = "C"
codigo = "011"
punto_de_venta = "00001"
numero = "00000001"
fecha_emision = "01/02/2025"
periodo_desde = "01/01/2025"
periodo_hasta = "31/01/2025"
fecha_vencimiento = "15/02/2025"
[[items]]
codigo = "1"
descripcion = "Servicios profesionales"
cantidad = 1.0
unidad = "unidades"
precio_unitario = 50000.00
bonificacion_porcentaje = 0.0
bonificacion_importe = 0.0
subtotal = 50000.00
[cae]
numero = "12345678901234"
vencimiento = "11/02/2025"
```