workers first
IndustriesPricingSecurityFor ProvidersHow It Works
Sign InGet started freeBook a demo

Guides

  • Introduction
  • Authentication
  • Errors
  • Rate limits
  • Idempotency
  • Pagination
  • Scopes

API Reference

  • Organization
  • Members
  • Customers
  • Sites
  • Shifts
  • timesheets
  • invoices
  • Bookings
  • Webhooks

Webhooks

  • Events & signatures

API Reference

invoices

Workers First

The all-in-one platform for organizations to manage their workforce, operations, and the people they serve.

support@keepworkersfirst.org

For Organizations

  • Book a Demo
  • Pricing
  • Security
  • Industries
  • Developers

For Providers

  • Join as Provider
  • Learn More

For Families

  • Create Account
  • Learn More

Company

  • About Us
  • Contact
© 2026 Workers First. All rights reserved.
Privacy PolicyTerms of ServiceAccessibility
GET/v1/invoices

List invoices

Returns a paginated list of invoices in your organization, newest first. Invoices are generated automatically from approved timesheets; filter by status, direction, member, or customer.

Scope: invoices:readModule: accounting

Query parameters

limitinteger

Page size, 1-100 (default 25).

cursorstring

Opaque cursor from a previous response’s next_cursor.

statusenum

draftsentpaidvoid

directionenum

provider_to_orgorg_to_customerprovider_to_customer

member_idstring (uuid)

Filter by billing member.

customer_idstring (uuid)

Filter by billed customer.

Request

Response · 200

GET/v1/invoices/{id}

Get an invoice

Returns a single invoice by id with its line items embedded. Responds 404 if no such invoice exists in your organization.

Scope: invoices:readModule: accounting

Path parameters

idrequiredstring (uuid)

Invoice id.

Request

curl -X GET "https://keepworkersfirst.org/api/v1/invoices/f2b3c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c6d" \
  -H "Authorization: Bearer $API_KEY"

Response · 200

{
  "id": "f2b3c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
  "invoice_number": "INV-000042",
  "direction": "org_to_customer",
  "member_id": null,
  "customer_id": "e9a2f6dd-508a-4e52-a6b2-1a8f5e2d6e43",
  "status": "sent",
  "issue_date": "2026-07-09",
  "due_date": "2026-07-23",
  "period_start": null,
  "period_end": null,
  "subtotal": 384,
  "tax_total": 33.6,
  "total": 417.6,
  "amount_paid": 0,
  "sent_at": "2026-07-09T10:05:00Z",
  "paid_at": null,
  "payment_reference": null,
  "voided_at": null,
  "void_reason": null,
  "notes": null,
  "created_at": "2026-07-09T10:00:00Z",
  "updated_at": "2026-07-09T10:05:00Z",
  "lines": [
    {
      "id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
      "invoice_id": "f2b3c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "line_index": 0,
      "line_type": "timesheet",
      "description": "2026-07-08 — Main St site — 8h @ $48.00",
      "quantity": 8,
      "unit": "hours",
      "rate": 48,
      "amount": 384,
      "shift_id": "a3f6d0aa-9d3c-49e0-90ef-6d3c1b7a2b10",
      "member_id": "d7f0e4cc-3e6f-4c30-b4a0-9f6e3d0c4d32",
      "customer_id": "e9a2f6dd-508a-4e52-a6b2-1a8f5e2d6e43",
      "created_at": "2026-07-09T10:00:00Z"
    }
  ]
}
{
  "data": [
    {
      "id": "f2b3c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "invoice_number": "INV-000042",
      "direction": "org_to_customer",
      "member_id": null,
      "customer_id": "e9a2f6dd-508a-4e52-a6b2-1a8f5e2d6e43",
      "status": "sent",
      "issue_date": "2026-07-09",
      "due_date": "2026-07-23",
      "period_start": null,
      "period_end": null,
      "subtotal": 384,
      "tax_total": 33.6,
      "total": 417.6,
      "amount_paid": 0,
      "sent_at": "2026-07-09T10:05:00Z",
      "paid_at": null,
      "payment_reference": null,
      "voided_at": null,
      "void_reason": null,
      "notes": null,
      "created_at": "2026-07-09T10:00:00Z",
      "updated_at": "2026-07-09T10:05:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
curl -X GET "https://keepworkersfirst.org/api/v1/invoices" \
  -H "Authorization: Bearer $API_KEY"