Skip to main content

Invoices

A line-item invoice. Creating one also creates a backing payment link — your client pays that link and the invoice is marked paid automatically.

List your invoices

GET /api/v1/invoices

Scope: read. Priced as a read call.

Create an invoice

POST /api/v1/invoices

Scope: write. Priced as invoice_pdf ($0.02 once your monthly quota is used up).

FieldTypeRequiredNotes
client_namestringyes
client_emailstringyesValid email
total_usdnumberyesPositive
line_itemsarrayyesAt least 1 item — { description, quantity, unit_price }
destination_addressstringyesWallet that receives payment
due_datestringnoISO date
memostringnoMax 500 chars, appended as a line-item note
recurring_interval"weekly" | "monthly" | "quarterly" | "yearly"noSchedules the next invoice automatically
curl -X POST https://veltro.online/api/v1/invoices \
-H "Authorization: Bearer vltro_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"client_name": "Acme Foundation",
"client_email": "billing@acme.xyz",
"total_usd": 4200,
"destination_address": "0xYourWalletAddress",
"line_items": [
{ "description": "Smart contract audit", "quantity": 1, "unit_price": 4200 }
],
"due_date": "2026-09-01"
}'
{
"data": {
"id": "...",
"invoice_number": "INV-2026-0007",
"client_name": "Acme Foundation",
"total_usd": 4200,
"payment_url": "https://veltro.online/pay/xK2p9qLmZ1",
"payment_slug": "xK2p9qLmZ1",
"status": "sent",
"created_at": "..."
}
}

Invoice creation itself has no plan-count limit — the only thing metered per plan is your monthly API call quota.