Organization
Read and update the actor's org settings. JWT-only.
| Method | Path | Permission |
|---|---|---|
GET | /v1/org | org:read |
PATCH | /v1/org | org:write |
GET /v1/org
curl https://api.receipts.oligontech.com/v1/org \
-H "Authorization: Bearer $JWT"Response — 200 OK
{
"id": "01HQX...",
"name": "Ana Inc",
"slug": "ana-inc",
"logo_url": null,
"billing_email": "ana@example.com",
"plan": "startup",
"created_at": "2026-05-20T09:00:00+00:00"
}404 not_found if the actor's org row is missing.
PATCH /v1/org
Partial update. Only the fields below are mutable here; slug and
plan are not. Plan changes go through
/v1/billing/checkout-session; slug is
immutable.
Request body
| Field | Type | Notes |
|---|---|---|
name | string | 1–255 chars. |
logo_url | string | ≤500 chars. URL to a hosted image. |
billing_email | string | Valid email. Used for Stripe + invoices. |
All fields are optional — send only what you want to change.
curl -X PATCH https://api.receipts.oligontech.com/v1/org \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"name":"Ana & Co","billing_email":"finance@ana.com"}'Returns the updated OrgOut with status 200. Writes an
org.updated audit event with before / after snapshots.