Easy Labs
SDKsRubyResources

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)

On this page