Changelog
All notable changes to the EsperWorks API. Breaking changes are marked breaking and announced at least 30 days in advance via email to affected API key owners.
v1.4
2026-05-30- newDELETE /v1/clients/:id, delete a client (clients:write scope)
- newDELETE /v1/invoices/:id, delete a draft invoice (invoices:write scope)
- newWebhook events: invoice.created, invoice.overdue, payment.failed, recurring_invoice.generated
- fixWebhook signature header is sha256=<hex> (prefixed), update your verification code if you were comparing raw hex
- fixRemoved contracts:write scope, contracts are managed through the dashboard only
- fixCorrected payment status endpoint path to /invoices/:id/payment-status
v1.3
2026-05-01- newPOST /v1/invoices/:id/initiate-payment, get payment URL via API
- newPOST /v1/invoices/:id/simulate-payment, test mode payment simulation with webhook firing
- newWebhook retries: 3 attempts with 60s/120s exponential backoff
- newEmbeddable widgets: /embed/invoice/:token and /embed/contract/:token
- newTest mode: ew_test_ keys skip email delivery and plan limits
- fixWebhook dispatch is now asynchronous, no longer blocks HTTP responses
v1.2
2026-04-29- newPATCH /v1/clients/:id, update client details
- newPATCH /v1/invoices/:id, update draft invoice notes and due date
- newPATCH /v1/expenses/:id, update an expense
- newGET /v1/projects and GET /v1/projects/:id, read project data
- newGET /v1/time-entries, list time entries with project and date filters
v1.1
2026-04-16- newAPI key rotation endpoint
- newWebhook delivery logs per key
v1.0
2026-04-07- newInitial Partner API release
- newClients, Invoices, Contracts, Payments, Expenses endpoints
- newScoped API keys with bcrypt hashing
- newWebhook delivery with HMAC-SHA256 signatures
- newinvoice.paid, invoice.sent, invoice.viewed, payment.received, contract.signed events