Invoices
Invoices — methods, parameters, and examples for easy-sdk (gem).
Invoices represent both the recurring invoices automatically generated by the subscription engine and ad-hoc invoices created via the API for one-off billing.
Accessed via client.invoices.
Methods
create(**body)
POST /invoices. Create a manual invoice.
invoice = client.invoices.create(
to_email: "client@example.com",
due_date: "2026-05-15",
items: [
{ description: "Consulting — April", quantity: 10, unit_price: 25_000 },
{ description: "Travel reimbursement", quantity: 1, unit_price: 12_500 }
]
)list(**query)
GET /invoices. Accepts arbitrary query params — status:, customer_id:,
plus the usual limit: / offset:.
client.invoices.list(status: "OPEN", limit: 50)retrieve(id)
GET /invoices/:id.
update(id, **body)
PATCH /invoices/:id. Mutate notes, line items, or due date on an
unfinalised invoice.
client.invoices.update("inv_…", notes: "Net 15 on this one — thanks Ada.")send_invoice(id, **body)
POST /invoices/:id/send. Renamed from send to avoid collision with
Object#send.
client.invoices.send_invoice("inv_…")pay(id, **body)
POST /invoices/:id/pay. Charge an invoice immediately using a saved
instrument.
client.invoices.pay("inv_…", instrument_id: card[:id])remind(id)
POST /invoices/:id/remind. Trigger a reminder email to the customer.
client.invoices.remind("inv_…")void(id)
POST /invoices/:id/void.
client.invoices.void("inv_…")pdf_data(id)
GET /invoices/:id/pdf. Returns a JSON payload shaped for client-side
PDF rendering rather than a binary PDF blob.
client.invoices.pdf_data("inv_…")Object shape
:id, :status (DRAFT, OPEN, PAID, VOID, UNCOLLECTIBLE),
:customer, :items, :subtotal, :total, :amount_due, :due_date,
:hosted_invoice_url, :created_at, …
Examples
Create + send in one go
invoice = client.invoices.create(
to_email: "client@example.com",
due_date: 14.days.from_now.to_date.iso8601,
items: [{ description: "Plan", quantity: 1, unit_price: 4_900 }]
)
client.invoices.send_invoice(invoice[:id])Auto-charge on creation
invoice = client.invoices.create(...)
client.invoices.pay(invoice[:id], instrument_id: customer_default_card_id)Render a custom PDF client-side
data = client.invoices.pdf_data("inv_…")
MyPdfRenderer.render(data)