{"openapi":"3.0.3","info":{"title":"Prelien Pro API Documentation","description":"A developer-first infrastructure layer for construction payment compliance. Manage organizations, projects, notices, waivers, pay applications, documents, and delivery orders through a versioned REST API.","version":"1.0.0"},"servers":[{"url":"https://api.prelienpro.com/api/v1"}],"tags":[{"name":"Audit Logs","description":"Read-only record of who changed what."},{"name":"Billing","description":"Subscription plans and Stripe billing."},{"name":"Contacts","description":"People attached to organizations and parties."},{"name":"Credits","description":"Balance, price previews and ad-hoc credit purchases."},{"name":"Divisions","description":"Claimant identities. Every generated document is attributed to a division; the per-tier claimant cap applies here."},{"name":"Document Orders","description":"Fulfillment orders (mail, filing, research, recording) with server-authoritative pricing."},{"name":"Documents","description":"Generated PDFs: list, generate, download and revert."},{"name":"Entity Meta","description":"Polymorphic key-value store attachable to any entity."},{"name":"Escalations","description":"Demand and escalation documents, with transitions and mail orders."},{"name":"Fulfillment Requests","description":"Hand research to CLS staff, who fill in the blanks and materialise the records."},{"name":"Jobsites","description":"Physical work locations for a project."},{"name":"Notices","description":"Preliminary notices, amendments, state transitions and accountable mail orders."},{"name":"Organizations","description":"Tenant accounts and directory records for counterparties (owner, GC, lender)."},{"name":"Parties","description":"Project participants (owner, GC, subs) in the CLS role vocabulary."},{"name":"Pay Applications","description":"AIA G702/G703 pay applications and their status lifecycle."},{"name":"Projects","description":"Construction projects. A claimant division and role are required on create."},{"name":"Provider Auth","description":"Stored credentials for downstream service providers."},{"name":"SOVs","description":"Schedules of values, including CSV import."},{"name":"Sandbox","description":"Inspect the API key mode and reset disposable sandbox data."},{"name":"Search","description":"Cross-resource search."},{"name":"Shipper Auth","description":"Stored credentials for shipping and mail carriers."},{"name":"Support","description":"Health, credit and usage summaries."},{"name":"Waivers","description":"Conditional and unconditional lien waivers, including signing."},{"name":"Webhooks","description":"Outbound subscriptions and inbound provider callbacks."}],"components":{"securitySchemes":{"default":{"type":"http","scheme":"bearer","description":"Authenticate using a Sanctum personal access token. Include it as <code>Authorization: Bearer &lt;token&gt;</code>. Most endpoints also require organization context, supplied via the <code>X-Organization-UUID</code> header, which tells the API which organization's credits to draw from and which organization's data to scope the request to. Organization context is resolved in this order: (1) the <code>org:&lt;uuid&gt;</code> ability on the token, if the token was restricted to a single organization when it was created, (2) the <code>X-Organization-UUID</code> header, (3) the requesting user's first organization membership. If none of these resolve to an organization the user belongs to, the API returns a 422 error."}}},"security":[{"default":[]}],"paths":{"/api/v1/audit-logs":{"get":{"summary":"List audit log entries","operationId":"listAuditLogEntries","description":"Paginated record of who changed what, newest first.","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"action","description":"Filter by action (created, updated, deleted, ...).","example":"updated","required":true,"schema":{"type":"string","description":"Filter by action (created, updated, deleted, ...).","example":"updated"}},{"in":"query","name":"auditable_type","description":"Filter by the changed record type.","example":"notice","required":true,"schema":{"type":"string","description":"Filter by the changed record type.","example":"notice"}},{"in":"query","name":"auditable_id","description":"Filter by the changed record UUID.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter by the changed record UUID.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"6d60b779-947b-4d7f-80e5-fe876825f03f","organization_id":"4946c450-68b3-4330-918c-96c3142cb979","user_id":null,"action":"created","auditable_type":"App\\Domain\\Organizations\\Models\\Organization","auditable_id":681,"old_values":null,"new_values":{"name":"Cronin, Dare and Hauck"},"ip_address":"153.39.9.254","user_agent":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_5) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/83.0.4512.11 Safari/532.2 Edg/83.01091.24","created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"0442801b-3b2a-4ac2-96a0-ba7bdba05709","organization_id":"37d6e971-b726-40ef-a5d0-a8cd28bbfbbc","user_id":null,"action":"deleted","auditable_type":"App\\Domain\\Organizations\\Models\\Organization","auditable_id":482,"old_values":null,"new_values":{"name":"Dibbert Inc"},"ip_address":"27.135.245.109","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7 rv:6.0) Gecko/20210106 Firefox/35.0","created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"6d60b779-947b-4d7f-80e5-fe876825f03f","organization_id":"4946c450-68b3-4330-918c-96c3142cb979","user_id":null,"action":"created","auditable_type":"App\\Domain\\Organizations\\Models\\Organization","auditable_id":681,"old_values":null,"new_values":{"name":"Cronin, Dare and Hauck"},"ip_address":"153.39.9.254","user_agent":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_5) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/83.0.4512.11 Safari/532.2 Edg/83.01091.24","created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"0442801b-3b2a-4ac2-96a0-ba7bdba05709","organization_id":"37d6e971-b726-40ef-a5d0-a8cd28bbfbbc","user_id":null,"action":"deleted","auditable_type":"App\\Domain\\Organizations\\Models\\Organization","auditable_id":482,"old_values":null,"new_values":{"name":"Dibbert Inc"},"ip_address":"27.135.245.109","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7 rv:6.0) Gecko/20210106 Firefox/35.0","created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"6d60b779-947b-4d7f-80e5-fe876825f03f"},"organization_id":{"type":"string","example":"4946c450-68b3-4330-918c-96c3142cb979"},"user_id":{"type":"string","example":null,"nullable":true},"action":{"type":"string","example":"created"},"auditable_type":{"type":"string","example":"App\\Domain\\Organizations\\Models\\Organization"},"auditable_id":{"type":"integer","example":681},"old_values":{"type":"string","example":null,"nullable":true},"new_values":{"type":"object","properties":{"name":{"type":"string","example":"Cronin, Dare and Hauck"}}},"ip_address":{"type":"string","example":"153.39.9.254"},"user_agent":{"type":"string","example":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_5) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/83.0.4512.11 Safari/532.2 Edg/83.01091.24"},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Audit Logs"]}},"/api/v1/audit-logs/{uuid}":{"get":{"summary":"Retrieve an audit log entry","operationId":"retrieveAnAuditLogEntry","description":"Returns a single audit entry by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"2cc86c0b-23cd-44bc-a1fb-626296daba7b","organization_id":"b8cf1083-8a52-4447-ae92-644c348c4e57","user_id":null,"action":"created","auditable_type":"App\\Domain\\Organizations\\Models\\Organization","auditable_id":681,"old_values":null,"new_values":{"name":"Cronin, Dare and Hauck"},"ip_address":"153.39.9.254","user_agent":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_5) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/83.0.4512.11 Safari/532.2 Edg/83.01091.24","created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"2cc86c0b-23cd-44bc-a1fb-626296daba7b"},"organization_id":{"type":"string","example":"b8cf1083-8a52-4447-ae92-644c348c4e57"},"user_id":{"type":"string","example":null,"nullable":true},"action":{"type":"string","example":"created"},"auditable_type":{"type":"string","example":"App\\Domain\\Organizations\\Models\\Organization"},"auditable_id":{"type":"integer","example":681},"old_values":{"type":"string","example":null,"nullable":true},"new_values":{"type":"object","properties":{"name":{"type":"string","example":"Cronin, Dare and Hauck"}}},"ip_address":{"type":"string","example":"153.39.9.254"},"user_agent":{"type":"string","example":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_5) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/83.0.4512.11 Safari/532.2 Edg/83.01091.24"},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Audit Logs"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/billing/plans":{"get":{"summary":"List billing plans","operationId":"listBillingPlans","description":"Available subscription plans with pricing and monthly credit grants.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"plans":[{"key":"growth","label":"Growth","monthly_credits":250,"cls_eligible":true}]},"properties":{"plans":{"type":"array","example":[{"key":"growth","label":"Growth","monthly_credits":250,"cls_eligible":true}],"items":{"type":"object","properties":{"key":{"type":"string","example":"growth"},"label":{"type":"string","example":"Growth"},"monthly_credits":{"type":"number","example":250},"cls_eligible":{"type":"boolean","example":true}}}}}}}}}},"tags":["Billing"]}},"/api/v1/billing/setup-intent":{"get":{"summary":"Create a billing setup intent","operationId":"createABillingSetupIntent","description":"Returns a Stripe SetupIntent client secret so the client can save a card via Stripe Elements.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"organization_uuid":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","client_secret":"seti_..._secret_...","publishable_key":"pk_..."},"properties":{"organization_uuid":{"type":"string","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"client_secret":{"type":"string","example":"seti_..._secret_..."},"publishable_key":{"type":"string","example":"pk_..."}}}}}}},"tags":["Billing"]}},"/api/v1/billing/subscribe":{"post":{"summary":"Subscribe to a plan","operationId":"subscribeToAPlan","description":"Subscribes the organization to a monthly plan using a saved or supplied payment method.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"organization_uuid":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","plan":"growth","status":"active","active":true},"properties":{"organization_uuid":{"type":"string","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"plan":{"type":"string","example":"growth"},"status":{"type":"string","example":"active"},"active":{"type":"boolean","example":true}}}}}}},"tags":["Billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","description":"Plan key to subscribe the organization to (e.g. starter, growth, scale).","example":"growth","enum":["starter","growth","scale"]},"interval":{"type":"string","description":"Billing interval. Defaults to monthly.","example":"monthly","enum":["monthly","annual"],"nullable":true},"payment_method":{"type":"string","description":"Optional Stripe PaymentMethod id from Stripe Elements. Omit to use the org default payment method.","example":"pm_1Q1abcXyz","nullable":true}},"required":["plan"]}}}}}},"/api/v1/billing/cancel":{"post":{"summary":"Cancel the subscription","operationId":"cancelTheSubscription","description":"Cancels the active subscription at period end.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"organization_uuid":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","cancelled":true,"ends_at":"2026-10-01T00:00:00+00:00"},"properties":{"organization_uuid":{"type":"string","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"cancelled":{"type":"boolean","example":true},"ends_at":{"type":"string","example":"2026-10-01T00:00:00+00:00"}}}}}}},"tags":["Billing"]}},"/api/v1/webhooks/stripe":{"post":{"summary":"Stripe billing callback","operationId":"stripeBillingCallback","description":"Inbound Stripe webhook. Signature-verified; not called by API clients.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"received":true},"properties":{"received":{"type":"boolean","example":true}}}}}}},"tags":["Billing"],"security":[]}},"/api/v1/contacts":{"get":{"summary":"List contacts","operationId":"listContacts","description":"Paginated contacts visible to the caller, newest first.","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"division_id","description":"Filter to this division (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this division (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"is_active","description":"Filter by active state.","example":true,"required":true,"schema":{"type":"boolean","description":"Filter by active state.","example":true}},{"in":"query","name":"search","description":"Case-insensitive partial match on first name, last name and email.","example":"architecto","required":true,"schema":{"type":"string","description":"Case-insensitive partial match on first name, last name and email.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"00557cfc-01e0-4325-a697-7756508b6a8b","organization_id":"f0be03f8-988d-4347-9272-c9794db598b7","division_id":null,"first_name":"Audra","last_name":"Crooks","email":"gulgowski.asia@example.com","phone":"6469808414","title":null,"type":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"54be3bea-f359-4953-86e5-63c2c631add6","organization_id":"840b95ec-4bdb-4dbb-901b-01d6aa1f5713","division_id":null,"first_name":"Roderick","last_name":"Leffler","email":"schultz.audrey@example.org","phone":null,"title":null,"type":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"00557cfc-01e0-4325-a697-7756508b6a8b","organization_id":"f0be03f8-988d-4347-9272-c9794db598b7","division_id":null,"first_name":"Audra","last_name":"Crooks","email":"gulgowski.asia@example.com","phone":"6469808414","title":null,"type":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"54be3bea-f359-4953-86e5-63c2c631add6","organization_id":"840b95ec-4bdb-4dbb-901b-01d6aa1f5713","division_id":null,"first_name":"Roderick","last_name":"Leffler","email":"schultz.audrey@example.org","phone":null,"title":null,"type":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"00557cfc-01e0-4325-a697-7756508b6a8b"},"organization_id":{"type":"string","example":"f0be03f8-988d-4347-9272-c9794db598b7"},"division_id":{"type":"string","example":null,"nullable":true},"first_name":{"type":"string","example":"Audra"},"last_name":{"type":"string","example":"Crooks"},"email":{"type":"string","example":"gulgowski.asia@example.com"},"phone":{"type":"string","example":"6469808414"},"title":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":null,"nullable":true},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Contacts"]},"post":{"summary":"Create a contact","operationId":"createAContact","description":"Creates a contact and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"95b40a09-7be2-4fa7-b8ba-215e3f299ad5","organization_id":"82164c53-36c8-44a1-800f-3e60f9730490","division_id":null,"first_name":"Christelle","last_name":"Bailey","email":null,"phone":"6290005642","title":"Geographer","type":"primary","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"95b40a09-7be2-4fa7-b8ba-215e3f299ad5"},"organization_id":{"type":"string","example":"82164c53-36c8-44a1-800f-3e60f9730490"},"division_id":{"type":"string","example":null,"nullable":true},"first_name":{"type":"string","example":"Christelle"},"last_name":{"type":"string","example":"Bailey"},"email":{"type":"string","example":null,"nullable":true},"phone":{"type":"string","example":"6290005642"},"title":{"type":"string","example":"Geographer"},"type":{"type":"string","example":"primary"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Contacts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"division_id":{"type":"string","description":"Optional UUID of a division to scope this contact to. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"first_name":{"type":"string","description":"Contact first name. Must not be greater than 255 characters.","example":"Jane"},"last_name":{"type":"string","description":"Contact last name. Must not be greater than 255 characters.","example":"Smith"},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 255 characters.","example":"512-555-0100","nullable":true},"title":{"type":"string","description":"Job title. Must not be greater than 255 characters.","example":"Project Manager","nullable":true},"type":{"type":"string","description":"Contact role for routing correspondence.","example":"primary","enum":["primary","billing","legal"],"nullable":true},"is_active":{"type":"boolean","description":"Whether the record is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["organization_id","first_name","last_name"]}}}}}},"/api/v1/contacts/{uuid}":{"get":{"summary":"Retrieve a contact","operationId":"retrieveAContact","description":"Returns a single contact by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"63004088-008e-4d17-923e-698133e66c64","organization_id":"d517c34c-8020-48e3-a529-612d95b509d7","division_id":null,"first_name":"Morgan","last_name":"Hirthe","email":"emelie.baumbach@example.net","phone":"1607257447","title":null,"type":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"63004088-008e-4d17-923e-698133e66c64"},"organization_id":{"type":"string","example":"d517c34c-8020-48e3-a529-612d95b509d7"},"division_id":{"type":"string","example":null,"nullable":true},"first_name":{"type":"string","example":"Morgan"},"last_name":{"type":"string","example":"Hirthe"},"email":{"type":"string","example":"emelie.baumbach@example.net"},"phone":{"type":"string","example":"1607257447"},"title":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":null,"nullable":true},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Contacts"]},"put":{"summary":"Update a contact","operationId":"updateAContact","description":"Applies a partial update to a contact and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"08a8a183-f686-4b63-b0e2-12037e76a415","organization_id":"4ea63b38-5f87-4001-8dcb-d34cd3557b0a","division_id":null,"first_name":"Christelle","last_name":"Bailey","email":null,"phone":"6290005642","title":"Geographer","type":"primary","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"08a8a183-f686-4b63-b0e2-12037e76a415"},"organization_id":{"type":"string","example":"4ea63b38-5f87-4001-8dcb-d34cd3557b0a"},"division_id":{"type":"string","example":null,"nullable":true},"first_name":{"type":"string","example":"Christelle"},"last_name":{"type":"string","example":"Bailey"},"email":{"type":"string","example":null,"nullable":true},"phone":{"type":"string","example":"6290005642"},"title":{"type":"string","example":"Geographer"},"type":{"type":"string","example":"primary"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Contacts"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"division_id":{"type":"string","description":"Optional UUID of a division to scope this contact to. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"first_name":{"type":"string","description":"Contact first name. Must not be greater than 255 characters.","example":"Jane"},"last_name":{"type":"string","description":"Contact last name. Must not be greater than 255 characters.","example":"Smith"},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 255 characters.","example":"512-555-0100","nullable":true},"title":{"type":"string","description":"Job title. Must not be greater than 255 characters.","example":"Project Manager","nullable":true},"type":{"type":"string","description":"Contact role for routing correspondence.","example":"primary","enum":["primary","billing","legal"],"nullable":true},"is_active":{"type":"boolean","description":"Whether the record is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a contact","operationId":"deleteAContact","description":"Soft-deletes the contact.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Contact deleted."},"properties":{"message":{"type":"string","example":"Contact deleted."}}}}}}},"tags":["Contacts"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/credits/balance":{"get":{"summary":"Get credit balance","operationId":"getCreditBalance","description":"Spendable balances (free, CLS-eligible) plus credits on hold -- set aside for a charge whose final amount is not known yet, such as full-service postage -- and what each hold is for. Held credits are not spendable; they are charged or returned when the work completes.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"organization_uuid":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","balance":{"total":4,"free":0,"cls_eligible":4},"held":36,"holds":[{"id":"5c1d…","amount":36,"description":"Postage for 3 recipients — Riverbend Medical Office","event_type":"fulfillment_postage","for":{"type":"fulfillment_request","id":"7c9de01e-29ee-4814-a9c8-25527412f041"},"created_at":"2026-10-04T20:00:00+00:00"}]},"properties":{"organization_uuid":{"type":"string","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"balance":{"type":"object","properties":{"total":{"type":"number","example":4},"free":{"type":"number","example":0},"cls_eligible":{"type":"number","example":4}}},"held":{"type":"number","example":36},"holds":{"type":"array","example":[{"id":"5c1d…","amount":36,"description":"Postage for 3 recipients — Riverbend Medical Office","event_type":"fulfillment_postage","for":{"type":"fulfillment_request","id":"7c9de01e-29ee-4814-a9c8-25527412f041"},"created_at":"2026-10-04T20:00:00+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"5c1d…"},"amount":{"type":"number","example":36},"description":{"type":"string","example":"Postage for 3 recipients — Riverbend Medical Office"},"event_type":{"type":"string","example":"fulfillment_postage"},"for":{"type":"object","properties":{"type":{"type":"string","example":"fulfillment_request"},"id":{"type":"string","example":"7c9de01e-29ee-4814-a9c8-25527412f041"}}},"created_at":{"type":"string","example":"2026-10-04T20:00:00+00:00"}}}}}}}}}},"tags":["Credits"]}},"/api/v1/credits/price":{"post":{"summary":"Preview an event price","operationId":"previewAnEventPrice","description":"Returns the credit cost of a billable event without charging it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"event_type":"mail_sending","credits":2,"cls_billable":true},"properties":{"event_type":{"type":"string","example":"mail_sending"},"credits":{"type":"number","example":2},"cls_billable":{"type":"boolean","example":true}}}}}}},"tags":["Credits"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"event_type":{"type":"string","description":"The billable event to price (e.g. document_generation, mail_sending, notice_research, document_order). Must not be greater than 100 characters.","example":"mail_sending"},"state":{"type":"string","description":"Optional two-letter state code, for state-dependent pricing. Must be 2 characters.","example":"CA","nullable":true},"recipients":{"type":"integer","description":"Number of recipients, for per-recipient pricing (1 to 10000). Must be at least 1. Must not be greater than 10000.","example":1,"nullable":true},"document_type":{"type":"string","description":"Optional document type, for type-dependent pricing. Must not be greater than 100 characters.","example":"notice","nullable":true},"fulfillment_scope":{"type":"string","description":"Optional fulfillment scope (e.g. research, full_service), for notice_research / fulfillment_notice_research pricing. Must not be greater than 50 characters.","example":"research","nullable":true},"order_type":{"type":"string","description":"Optional document order type (defaults to mail), for document_order pricing. Must not be greater than 50 characters.","example":"mail","nullable":true},"mail_class":{"type":"string","description":"Optional mail class (defaults to first_class), for mailed document_order pricing. Must not be greater than 50 characters.","example":"certified","nullable":true}},"required":["event_type"]}}}}}},"/api/v1/credits/purchase":{"post":{"summary":"Purchase credits","operationId":"purchaseCredits","description":"Buys ad-hoc CLS-eligible credits (USD 1 = 1 credit) against the org default payment method.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"purchased":100,"balance":350},"properties":{"purchased":{"type":"integer","example":100},"balance":{"type":"number","example":350}}}}}}},"tags":["Credits"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"credits":{"type":"integer","description":"Number of credits to buy. Sold in whole-dollar increments (USD 1 = 1 credit). Must be at least 1. Must not be greater than 1000000.","example":100}},"required":["credits"]}}}}}},"/api/v1/divisions":{"get":{"summary":"List divisions","operationId":"listDivisions","description":"Paginated divisions visible to the caller, newest first.","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"is_active","description":"Filter by active state.","example":true,"required":true,"schema":{"type":"boolean","description":"Filter by active state.","example":true}},{"in":"query","name":"search","description":"Case-insensitive partial match on name and code.","example":"architecto","required":true,"schema":{"type":"string","description":"Case-insensitive partial match on name and code.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"fd897fec-58cf-46c7-b86a-82815e3a521e","organization_id":"93943636-6427-426d-bc67-14600fdf8da1","name":"eius et","code":null,"description":"Et fugiat sunt nihil accusantium.","address_line_1":"1582 Lexus Mount Apt. 498","address_line_2":"Apt. 724","city":"Lake Haven","state":"LA","zip":"19279","zip_plus_4":"5744","country_code":"US","phone":"0591350525","email":null,"license_number":"LIC-915066","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"20df3f9e-f1ec-4165-8dd7-df4de2ba2ca6","organization_id":"43095bdf-93d1-4081-a123-b7e411e4e5ad","name":"est dignissimos","code":null,"description":null,"address_line_1":"11084 Palma Stream Apt. 368","address_line_2":null,"city":"Artborough","state":"NV","zip":"18607-5439","zip_plus_4":null,"country_code":"US","phone":"8474860372","email":null,"license_number":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"fd897fec-58cf-46c7-b86a-82815e3a521e","organization_id":"93943636-6427-426d-bc67-14600fdf8da1","name":"eius et","code":null,"description":"Et fugiat sunt nihil accusantium.","address_line_1":"1582 Lexus Mount Apt. 498","address_line_2":"Apt. 724","city":"Lake Haven","state":"LA","zip":"19279","zip_plus_4":"5744","country_code":"US","phone":"0591350525","email":null,"license_number":"LIC-915066","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"20df3f9e-f1ec-4165-8dd7-df4de2ba2ca6","organization_id":"43095bdf-93d1-4081-a123-b7e411e4e5ad","name":"est dignissimos","code":null,"description":null,"address_line_1":"11084 Palma Stream Apt. 368","address_line_2":null,"city":"Artborough","state":"NV","zip":"18607-5439","zip_plus_4":null,"country_code":"US","phone":"8474860372","email":null,"license_number":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"fd897fec-58cf-46c7-b86a-82815e3a521e"},"organization_id":{"type":"string","example":"93943636-6427-426d-bc67-14600fdf8da1"},"name":{"type":"string","example":"eius et"},"code":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Et fugiat sunt nihil accusantium."},"address_line_1":{"type":"string","example":"1582 Lexus Mount Apt. 498"},"address_line_2":{"type":"string","example":"Apt. 724"},"city":{"type":"string","example":"Lake Haven"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":"5744"},"country_code":{"type":"string","example":"US"},"phone":{"type":"string","example":"0591350525"},"email":{"type":"string","example":null,"nullable":true},"license_number":{"type":"string","example":"LIC-915066"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Divisions"]},"post":{"summary":"Create a division","operationId":"createADivision","description":"Creates a division and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"1c8fda6d-3b76-4986-9c31-a7ae9474ad55","organization_id":"54f60b87-43dc-4960-80b9-a0c9b66ec1f8","name":"sunt nihil","code":"DIV-841","description":null,"address_line_1":"78142 Nick Field","address_line_2":"Apt. 724","city":"Lake Haven","state":"LA","zip":"19279","zip_plus_4":"5744","country_code":"US","phone":"0591350525","email":null,"license_number":"LIC-915066","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"1c8fda6d-3b76-4986-9c31-a7ae9474ad55"},"organization_id":{"type":"string","example":"54f60b87-43dc-4960-80b9-a0c9b66ec1f8"},"name":{"type":"string","example":"sunt nihil"},"code":{"type":"string","example":"DIV-841"},"description":{"type":"string","example":null,"nullable":true},"address_line_1":{"type":"string","example":"78142 Nick Field"},"address_line_2":{"type":"string","example":"Apt. 724"},"city":{"type":"string","example":"Lake Haven"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":"5744"},"country_code":{"type":"string","example":"US"},"phone":{"type":"string","example":"0591350525"},"email":{"type":"string","example":null,"nullable":true},"license_number":{"type":"string","example":"LIC-915066"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Divisions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"name":{"type":"string","description":"Division / claimant legal name as it should appear on documents. Must not be greater than 255 characters.","example":"Acme Mechanical, Northwest Division"},"code":{"type":"string","description":"Optional short internal code for the division. Must not be greater than 255 characters.","example":"NW","nullable":true},"description":{"type":"string","description":"Optional internal description. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd"},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"v","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 100 characters.","example":"Austin"},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701"},"zip_plus_4":{"type":"string","description":"Optional 4-digit ZIP+4 extension. Must not be greater than 4 characters.","example":"1234","nullable":true},"country_code":{"type":"string","description":"Two-letter ISO country code. Defaults to US. Must be 2 characters.","example":"US","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 20 characters.","example":"512-555-0100","nullable":true},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"license_number":{"type":"string","description":"Contractor license number for this claimant. Rendered on documents; cannot be overridden per-document. Must not be greater than 255 characters.","example":"LIC-558231","nullable":true},"is_active":{"type":"boolean","description":"Whether the record is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["organization_id","name","address_line_1","city","state","zip"]}}}}}},"/api/v1/divisions/{uuid}":{"get":{"summary":"Retrieve a division","operationId":"retrieveADivision","description":"Returns a single division by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"44084e8c-b20c-42a3-95ab-03e83396d28b","organization_id":"05fb656b-74f5-4a48-bdeb-54096eba65ac","name":"aut adipisci","code":"DIV-432","description":null,"address_line_1":"38862 Ferne Locks Suite 058","address_line_2":"Apt. 067","city":"Lefflerhaven","state":"TX","zip":"58408-7043","zip_plus_4":null,"country_code":"US","phone":"6912823169","email":"kconsidine@kshlerin.com","license_number":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"44084e8c-b20c-42a3-95ab-03e83396d28b"},"organization_id":{"type":"string","example":"05fb656b-74f5-4a48-bdeb-54096eba65ac"},"name":{"type":"string","example":"aut adipisci"},"code":{"type":"string","example":"DIV-432"},"description":{"type":"string","example":null,"nullable":true},"address_line_1":{"type":"string","example":"38862 Ferne Locks Suite 058"},"address_line_2":{"type":"string","example":"Apt. 067"},"city":{"type":"string","example":"Lefflerhaven"},"state":{"type":"string","example":"TX"},"zip":{"type":"string","example":"58408-7043"},"zip_plus_4":{"type":"string","example":null,"nullable":true},"country_code":{"type":"string","example":"US"},"phone":{"type":"string","example":"6912823169"},"email":{"type":"string","example":"kconsidine@kshlerin.com"},"license_number":{"type":"string","example":null,"nullable":true},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Divisions"]},"put":{"summary":"Update a division","operationId":"updateADivision","description":"Applies a partial update to a division and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"9e15853d-e4e0-418e-b0a6-a2f05a10055d","organization_id":"a351b06e-881f-42ce-a061-c5bc3905a1c3","name":"sunt nihil","code":"DIV-841","description":null,"address_line_1":"78142 Nick Field","address_line_2":"Apt. 724","city":"Lake Haven","state":"LA","zip":"19279","zip_plus_4":"5744","country_code":"US","phone":"0591350525","email":null,"license_number":"LIC-915066","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"9e15853d-e4e0-418e-b0a6-a2f05a10055d"},"organization_id":{"type":"string","example":"a351b06e-881f-42ce-a061-c5bc3905a1c3"},"name":{"type":"string","example":"sunt nihil"},"code":{"type":"string","example":"DIV-841"},"description":{"type":"string","example":null,"nullable":true},"address_line_1":{"type":"string","example":"78142 Nick Field"},"address_line_2":{"type":"string","example":"Apt. 724"},"city":{"type":"string","example":"Lake Haven"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":"5744"},"country_code":{"type":"string","example":"US"},"phone":{"type":"string","example":"0591350525"},"email":{"type":"string","example":null,"nullable":true},"license_number":{"type":"string","example":"LIC-915066"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Divisions"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Division / claimant legal name as it should appear on documents. Must not be greater than 255 characters.","example":"Acme Mechanical, Northwest Division"},"code":{"type":"string","description":"Optional short internal code for the division. Must not be greater than 255 characters.","example":"NW","nullable":true},"description":{"type":"string","description":"Optional internal description. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd"},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"v","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 100 characters.","example":"Austin"},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701"},"zip_plus_4":{"type":"string","description":"Optional 4-digit ZIP+4 extension. Must not be greater than 4 characters.","example":"1234","nullable":true},"country_code":{"type":"string","description":"Two-letter ISO country code. Defaults to US. Must be 2 characters.","example":"US","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 20 characters.","example":"512-555-0100","nullable":true},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"license_number":{"type":"string","description":"Contractor license number for this claimant. Rendered on documents; cannot be overridden per-document. Must not be greater than 255 characters.","example":"LIC-558231","nullable":true},"is_active":{"type":"boolean","description":"Whether the record is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a division","operationId":"deleteADivision","description":"Deletes the division. A division that is a project claimant cannot be deleted (422).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Division deleted."},"properties":{"message":{"type":"string","example":"Division deleted."}}}}}}},"tags":["Divisions"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/document-orders":{"get":{"summary":"List document orders","operationId":"listDocumentOrders","description":"Paginated fulfillment orders visible to the caller.","parameters":[{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"billing_status","description":"Filter by billing status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by billing status.","example":"architecto"}},{"in":"query","name":"order_type","description":"Filter by order type: mail, filing, research or recording.","example":"mail","required":true,"schema":{"type":"string","description":"Filter by order type: mail, filing, research or recording.","example":"mail"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"f0f775ca-33d3-4d8e-8709-07ddbc456431","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1288,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Macey Rempel PhD","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"1d8d3a1f-d666-490a-a3a1-805aaa81fbdd","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1392,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Prof. Juvenal O'Kon","address_line_1":"6750 Alfonso Causeway","address_line_2":null,"city":"East Danielaborough","state":"DE","zip":"95083"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"f0f775ca-33d3-4d8e-8709-07ddbc456431","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1288,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Macey Rempel PhD","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"1d8d3a1f-d666-490a-a3a1-805aaa81fbdd","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1392,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Prof. Juvenal O'Kon","address_line_1":"6750 Alfonso Causeway","address_line_2":null,"city":"East Danielaborough","state":"DE","zip":"95083"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"f0f775ca-33d3-4d8e-8709-07ddbc456431"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1288},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Macey Rempel PhD"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Document Orders"]},"post":{"summary":"Create a document order","operationId":"createADocumentOrder","description":"Orders fulfillment (mail / filing / research / recording) for a generated document. Price is computed server-side.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"dddaac1e-8a19-4a13-9a07-8b74f4a33096","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1288,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Macey Rempel PhD","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dddaac1e-8a19-4a13-9a07-8b74f4a33096"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1288},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Macey Rempel PhD"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Document Orders"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document_id":{"type":"string","description":"UUID of the generated document to fulfill. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"organization_id":{"type":"string","description":"Optional UUID of the organization to bill. Defaults to the document organization. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"order_type":{"type":"string","description":"Fulfillment channel.","example":"mail","enum":["mail","filing","research","recording"],"nullable":true},"billing_method":{"type":"string","description":"How the order is paid for.","example":"credit_balance","enum":["prepay","invoice","credit_balance"],"nullable":true},"mail_class":{"type":"string","description":"USPS mail class (mailed orders only).","example":"certified","enum":["first_class","certified","priority"],"nullable":true},"recipient_name":{"type":"string","description":"Name of the party the document is sent to. Must not be greater than 255 characters.","example":"Property Owner LLC"},"recipient_address_line_1":{"type":"string","description":"Recipient street address, line 1. Must not be greater than 255 characters.","example":"200 Main Street"},"recipient_address_line_2":{"type":"string","description":"Recipient street address, line 2. Must not be greater than 255 characters.","example":"b","nullable":true},"recipient_city":{"type":"string","description":"Recipient city. Must not be greater than 255 characters.","example":"Austin"},"recipient_state":{"type":"string","description":"Recipient two-letter US state code. Must be 2 characters.","example":"TX"},"recipient_zip":{"type":"string","description":"Recipient postal code. Must not be greater than 10 characters.","example":"78702"},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["document_id","recipient_name","recipient_address_line_1","recipient_city","recipient_state","recipient_zip"]}}}}}},"/api/v1/document-orders/{uuid}":{"get":{"summary":"Retrieve a document order","operationId":"retrieveADocumentOrder","description":"Returns a single order by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"dc59e141-1854-4a8a-a966-e87b18d6c188","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1118,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Miss Pearl Hauck","address_line_1":"99279 Kenyatta Knoll","address_line_2":null,"city":"Careymouth","state":"IA","zip":"64310-6432"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dc59e141-1854-4a8a-a966-e87b18d6c188"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1118},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Miss Pearl Hauck"},"address_line_1":{"type":"string","example":"99279 Kenyatta Knoll"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Careymouth"},"state":{"type":"string","example":"IA"},"zip":{"type":"string","example":"64310-6432"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Document Orders"]},"patch":{"summary":"Update a document order","operationId":"updateADocumentOrder","description":"Edits recipient / mail-class details while the order is still editable.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"e9f1593a-3ad8-48e6-b32b-393e3c0d91d3","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1288,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Macey Rempel PhD","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"e9f1593a-3ad8-48e6-b32b-393e3c0d91d3"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1288},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Macey Rempel PhD"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Document Orders"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"recipient_name":{"type":"string","description":"Name of the party the document is sent to. Must not be greater than 255 characters.","example":"Property Owner LLC"},"recipient_address_line_1":{"type":"string","description":"Recipient street address, line 1. Must not be greater than 255 characters.","example":"200 Main Street"},"recipient_address_line_2":{"type":"string","description":"Recipient street address, line 2. Must not be greater than 255 characters.","example":"b","nullable":true},"recipient_city":{"type":"string","description":"Recipient city. Must not be greater than 255 characters.","example":"Austin"},"recipient_state":{"type":"string","description":"Recipient two-letter US state code. Must be 2 characters.","example":"TX"},"recipient_zip":{"type":"string","description":"Recipient postal code. Must not be greater than 10 characters.","example":"78702"},"mail_class":{"type":"string","description":"USPS mail class.","example":"certified","enum":["first_class","certified","priority"]},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/document-orders/{document_order_uuid}/cancel":{"post":{"summary":"Cancel a document order","operationId":"cancelADocumentOrder","description":"Cancels the order if it has not yet been dispatched.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"1da9bc80-752f-410b-aa92-35579cde1699","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1118,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Miss Pearl Hauck","address_line_1":"99279 Kenyatta Knoll","address_line_2":null,"city":"Careymouth","state":"IA","zip":"64310-6432"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"1da9bc80-752f-410b-aa92-35579cde1699"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1118},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Miss Pearl Hauck"},"address_line_1":{"type":"string","example":"99279 Kenyatta Knoll"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Careymouth"},"state":{"type":"string","example":"IA"},"zip":{"type":"string","example":"64310-6432"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Document Orders"]},"parameters":[{"in":"path","name":"document_order_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/document-orders/{document_order_uuid}/pay":{"post":{"summary":"Record a document-order payment","operationId":"recordADocumentOrderPayment","description":"Records a charge, refund, adjustment or applied-credit line against the order.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"878a27d0-9793-4977-851f-69bcebcd5f00","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":1288,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"first_class","recipient":{"name":"Macey Rempel PhD","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"878a27d0-9793-4977-851f-69bcebcd5f00"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":1288},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"first_class"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Macey Rempel PhD"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Document Orders"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Payment kind. charge and credit_applied must be positive; refund must be negative; none may be zero.","example":"charge","enum":["charge","refund","adjustment","credit_applied"]},"amount_cents":{"type":"integer","description":"Signed amount in cents (sign is enforced per type). Must be between -100000000 and 100000000.","example":995},"reference":{"type":"string","description":"Optional external payment reference (e.g. a Stripe PaymentIntent id). Must not be greater than 255 characters.","example":"pi_3Q1abcXyz","nullable":true},"notes":{"type":"string","description":"Optional free-text note about the payment. Must not be greater than 1000 characters.","example":"b","nullable":true}},"required":["type","amount_cents"]}}}}},"parameters":[{"in":"path","name":"document_order_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/document-orders/{document_order_uuid}/payments":{"get":{"summary":"List document-order payments","operationId":"listDocumentOrderPayments","description":"Returns the payment ledger for the order.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"9bc483b6-af19-4172-9ef8-cc3a5be75da5","type":"charge","amount_cents":1118,"reference":"TXN-35450949","notes":"Commodi incidunt iure odit.","recorded_at":"2026-10-05T15:49:20+00:00","created_at":"2026-10-05T15:49:20+00:00"},{"id":"6bbd4a73-c2a8-4646-b82e-e094fc680458","type":"charge","amount_cents":1047,"reference":"TXN-66214223","notes":null,"recorded_at":"2026-10-05T15:49:20+00:00","created_at":"2026-10-05T15:49:20+00:00"}]},"properties":{"data":{"type":"array","example":[{"id":"9bc483b6-af19-4172-9ef8-cc3a5be75da5","type":"charge","amount_cents":1118,"reference":"TXN-35450949","notes":"Commodi incidunt iure odit.","recorded_at":"2026-10-05T15:49:20+00:00","created_at":"2026-10-05T15:49:20+00:00"},{"id":"6bbd4a73-c2a8-4646-b82e-e094fc680458","type":"charge","amount_cents":1047,"reference":"TXN-66214223","notes":null,"recorded_at":"2026-10-05T15:49:20+00:00","created_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"9bc483b6-af19-4172-9ef8-cc3a5be75da5"},"type":{"type":"string","example":"charge"},"amount_cents":{"type":"integer","example":1118},"reference":{"type":"string","example":"TXN-35450949"},"notes":{"type":"string","example":"Commodi incidunt iure odit."},"recorded_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}}},"tags":["Document Orders"]},"parameters":[{"in":"path","name":"document_order_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/documents":{"get":{"summary":"List documents","operationId":"listDocuments","description":"Paginated generated documents visible to the caller.","parameters":[{"in":"query","name":"type","description":"Filter by type.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by type.","example":"architecto"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"is_preview","description":"Filter to preview / non-preview documents.","example":false,"required":true,"schema":{"type":"boolean","description":"Filter to preview / non-preview documents.","example":false}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"1e1311cc-be60-4bd0-8f05-0bf987f1c175","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"animi.pdf","mime_type":"application/pdf","file_size":290549,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"3a87d5de-f176-41a5-8bf9-51eca125090a","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"impedit.pdf","mime_type":"application/pdf","file_size":80691,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"1e1311cc-be60-4bd0-8f05-0bf987f1c175","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"animi.pdf","mime_type":"application/pdf","file_size":290549,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"3a87d5de-f176-41a5-8bf9-51eca125090a","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"impedit.pdf","mime_type":"application/pdf","file_size":80691,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"1e1311cc-be60-4bd0-8f05-0bf987f1c175"},"type":{"type":"string","example":"pay-application"},"template":{"type":"string","example":"documents.pay-application.default"},"state":{"type":"string","example":null,"nullable":true},"file_name":{"type":"string","example":"animi.pdf"},"mime_type":{"type":"string","example":"application/pdf"},"file_size":{"type":"integer","example":290549},"status":{"type":"string","example":"completed"},"is_preview":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Documents"]}},"/api/v1/documents/{uuid}":{"get":{"summary":"Retrieve a document","operationId":"retrieveADocument","description":"Returns document metadata by UUID (not the PDF bytes).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"b195331e-0576-4b04-a279-8a691955ba6e","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"quidem.pdf","mime_type":"application/pdf","file_size":47583,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"b195331e-0576-4b04-a279-8a691955ba6e"},"type":{"type":"string","example":"pay-application"},"template":{"type":"string","example":"documents.pay-application.default"},"state":{"type":"string","example":null,"nullable":true},"file_name":{"type":"string","example":"quidem.pdf"},"mime_type":{"type":"string","example":"application/pdf"},"file_size":{"type":"integer","example":47583},"status":{"type":"string","example":"completed"},"is_preview":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Documents"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/documents/generate":{"post":{"summary":"Generate a document","operationId":"generateADocument","description":"Renders a PDF for a notice, waiver, escalation or pay application. Runs the claimant / owner / GC preflight first. Pass preview=true for a no-charge draft.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"dc6c347b-a29d-4053-b237-29ef32be46af","type":"pay-application","template":"documents.pay-application.default","state":null,"file_name":"et.pdf","mime_type":"application/pdf","file_size":122326,"status":"completed","is_preview":false,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dc6c347b-a29d-4053-b237-29ef32be46af"},"type":{"type":"string","example":"pay-application"},"template":{"type":"string","example":"documents.pay-application.default"},"state":{"type":"string","example":null,"nullable":true},"file_name":{"type":"string","example":"et.pdf"},"mime_type":{"type":"string","example":"application/pdf"},"file_size":{"type":"integer","example":122326},"status":{"type":"string","example":"completed"},"is_preview":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Documents"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"documentable_type":{"type":"string","description":"The kind of record the PDF is generated from.","example":"notice","enum":["pay_application","waiver","escalation","notice"]},"documentable_id":{"type":"string","description":"UUID of the notice / waiver / escalation / pay_application to render.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"type":{"type":"string","description":"The specific document/template to produce (e.g. notice, g702, g703, or an escalation document type).","example":"notice","enum":["pay-application","waiver","escalation","notice","g702","g703","notice_of_intent","notice_of_claim","mechanics_lien","bond_claim","stop_notice","lien_release"]},"state":{"type":"string","description":"Optional two-letter state override for template selection. Defaults to the record state. Must be 2 characters.","example":"CA","nullable":true},"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"preview":{"type":"boolean","description":"When true, render a draft without persisting it or charging a credit.","example":false,"nullable":true}},"required":["documentable_type","documentable_id","type","organization_id"]}}}}}},"/api/v1/documents/{document_uuid}/revert":{"post":{"summary":"Revert a document","operationId":"revertADocument","description":"Marks the current generated document reverted so the source record can be regenerated.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Document reverted."},"properties":{"message":{"type":"string","example":"Document reverted."}}}}}}},"tags":["Documents"]},"parameters":[{"in":"path","name":"document_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/documents/{document_uuid}/download":{"get":{"summary":"Download a document PDF","operationId":"downloadADocumentPDF","description":"Streams the generated PDF (application/pdf).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"The generated PDF, served as application/pdf with a Content-Disposition attachment header.","content":{"text/plain":{"schema":{"type":"string","example":"<binary PDF stream>"}}}}},"tags":["Documents"]},"parameters":[{"in":"path","name":"document_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/{entityType}/{entityId}/meta":{"get":{"summary":"List entity metadata","operationId":"listEntityMetadata","description":"All metadata keyvalue pairs stored on the given entity.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"key":"review_state","value":"in_review","type":"string"}]},"properties":{"data":{"type":"array","example":[{"key":"review_state","value":"in_review","type":"string"}],"items":{"type":"object","properties":{"key":{"type":"string","example":"review_state"},"value":{"type":"string","example":"in_review"},"type":{"type":"string","example":"string"}}}}}}}}}},"tags":["Entity Meta"]},"parameters":[{"in":"path","name":"entityType","description":"","example":"architecto","required":true,"schema":{"type":"string"}},{"in":"path","name":"entityId","description":"","example":"architecto","required":true,"schema":{"type":"string"}}]},"/api/v1/{entityType}/{entityId}/meta/{key}":{"get":{"summary":"Get an entity metadata value","operationId":"getAnEntityMetadataValue","description":"Returns one metadata entry by key.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"key":"review_state","value":"in_review","type":"string"}},"properties":{"data":{"type":"object","properties":{"key":{"type":"string","example":"review_state"},"value":{"type":"string","example":"in_review"},"type":{"type":"string","example":"string"}}}}}}}}},"tags":["Entity Meta"]},"put":{"summary":"Set an entity metadata value","operationId":"setAnEntityMetadataValue","description":"Creates or replaces the metadata entry at the given key.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"key":"review_state","value":"in_review","type":"string"}},"properties":{"data":{"type":"object","properties":{"key":{"type":"string","example":"review_state"},"value":{"type":"string","example":"in_review"},"type":{"type":"string","example":"string"}}}}}}}}},"tags":["Entity Meta"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"The value to store. Scalars or a bounded JSON structure (max 32 KB, depth 6, 500 items).","example":"in_review"},"type":{"type":"string","description":"How to cast the stored value on read.","example":"string","enum":["string","integer","boolean","json"],"nullable":true}},"required":["value"]}}}}},"delete":{"summary":"Delete an entity metadata value","operationId":"deleteAnEntityMetadataValue","description":"Removes the metadata entry at the given key.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Meta value deleted."},"properties":{"message":{"type":"string","example":"Meta value deleted."}}}}}}},"tags":["Entity Meta"]},"parameters":[{"in":"path","name":"entityType","description":"","example":"architecto","required":true,"schema":{"type":"string"}},{"in":"path","name":"entityId","description":"","example":"architecto","required":true,"schema":{"type":"string"}},{"in":"path","name":"key","description":"","example":"architecto","required":true,"schema":{"type":"string"}}]},"/api/v1/escalations":{"get":{"summary":"List escalations","operationId":"listEscalations","description":"Paginated escalations visible to the caller, newest first.","parameters":[{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"type","description":"Filter by type.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by type.","example":"architecto"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"state","description":"Filter by two-letter US state code.","example":"CA","required":true,"schema":{"type":"string","description":"Filter by two-letter US state code.","example":"CA"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"c7b0e9e9-0da5-4e21-81e8-63a7e3b0b8ca","project_id":"d0672308-15b0-4575-9f99-18feaf312965","organization_id":"34cd7cf9-d69f-465b-bb84-0c9e496caeb7","division_id":"a8c06a50-fb35-40e1-b696-4b43a10a8d85","notice_id":null,"type":"lawsuit","type_label":"Lawsuit","status":"draft","status_label":"Draft","state":"RI","escalation_date":"2026-02-22","deadline_date":"2026-11-08","claim_amount":"271817.20","description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"353e8c03-0d85-4bfc-8ba6-922905cc5bc2","project_id":"88251d87-12a7-4185-a909-fc3598885e07","organization_id":"b0f64a37-3efc-4363-9ff9-71381ec4e358","division_id":"bcd8631a-3730-4984-8982-3bae1bb6ac59","notice_id":null,"type":"lien_filing","type_label":"Lien Filing","status":"draft","status_label":"Draft","state":"ND","escalation_date":"2026-06-18","deadline_date":null,"claim_amount":null,"description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"c7b0e9e9-0da5-4e21-81e8-63a7e3b0b8ca","project_id":"d0672308-15b0-4575-9f99-18feaf312965","organization_id":"34cd7cf9-d69f-465b-bb84-0c9e496caeb7","division_id":"a8c06a50-fb35-40e1-b696-4b43a10a8d85","notice_id":null,"type":"lawsuit","type_label":"Lawsuit","status":"draft","status_label":"Draft","state":"RI","escalation_date":"2026-02-22","deadline_date":"2026-11-08","claim_amount":"271817.20","description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"353e8c03-0d85-4bfc-8ba6-922905cc5bc2","project_id":"88251d87-12a7-4185-a909-fc3598885e07","organization_id":"b0f64a37-3efc-4363-9ff9-71381ec4e358","division_id":"bcd8631a-3730-4984-8982-3bae1bb6ac59","notice_id":null,"type":"lien_filing","type_label":"Lien Filing","status":"draft","status_label":"Draft","state":"ND","escalation_date":"2026-06-18","deadline_date":null,"claim_amount":null,"description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"c7b0e9e9-0da5-4e21-81e8-63a7e3b0b8ca"},"project_id":{"type":"string","example":"d0672308-15b0-4575-9f99-18feaf312965"},"organization_id":{"type":"string","example":"34cd7cf9-d69f-465b-bb84-0c9e496caeb7"},"division_id":{"type":"string","example":"a8c06a50-fb35-40e1-b696-4b43a10a8d85"},"notice_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"lawsuit"},"type_label":{"type":"string","example":"Lawsuit"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"RI"},"escalation_date":{"type":"string","example":"2026-02-22"},"deadline_date":{"type":"string","example":"2026-11-08"},"claim_amount":{"type":"string","example":"271817.20"},"description":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Escalations"]},"post":{"summary":"Create a escalation","operationId":"createAEscalation","description":"Creates a escalation and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"f573c767-61c9-4ddc-ac75-eef0f61dac88","project_id":"d4e0de47-0810-40d5-bb1f-b784a4c216b9","organization_id":"fbe016f0-0d51-40d0-974b-8170e909b595","division_id":"8985742a-c5e2-4f8c-be15-049aaa15fffd","notice_id":null,"type":"lien_filing","type_label":"Lien Filing","status":"draft","status_label":"Draft","state":"ND","escalation_date":"2025-12-23","deadline_date":"2026-10-31","claim_amount":null,"description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"f573c767-61c9-4ddc-ac75-eef0f61dac88"},"project_id":{"type":"string","example":"d4e0de47-0810-40d5-bb1f-b784a4c216b9"},"organization_id":{"type":"string","example":"fbe016f0-0d51-40d0-974b-8170e909b595"},"division_id":{"type":"string","example":"8985742a-c5e2-4f8c-be15-049aaa15fffd"},"notice_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"lien_filing"},"type_label":{"type":"string","example":"Lien Filing"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"ND"},"escalation_date":{"type":"string","example":"2025-12-23"},"deadline_date":{"type":"string","example":"2026-10-31"},"claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Escalations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"division_id":{"type":"string","description":"UUID of the claimant division. Optional: inherited from the project. Supplying a division other than the project one is rejected (422). Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"notice_id":{"type":"string","description":"Optional UUID of the notice this escalation follows from. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"type":{"type":"string","description":"Escalation type: demand_letter, lien_filing, bond_claim, or lawsuit.","example":"demand_letter","enum":["demand_letter","lien_filing","bond_claim","lawsuit"]},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"escalation_date":{"type":"string","description":"Date the escalation is issued (YYYY-MM-DD). Must be a valid date.","example":"2026-05-24"},"deadline_date":{"type":"string","description":"Optional statutory deadline; must be after escalation_date. Must be a valid date. Must be a date after <code>escalation_date</code>.","example":"2026-06-24","nullable":true},"claim_amount":{"type":"number","description":"Amount claimed, in dollars. Must be at least 0.","example":50000,"nullable":true},"description":{"type":"string","description":"Optional narrative included on the document. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline.","example":null,"properties":[],"nullable":true}},"required":["project_id","organization_id","type","state","escalation_date"]}}}}}},"/api/v1/escalations/{uuid}":{"get":{"summary":"Retrieve a escalation","operationId":"retrieveAEscalation","description":"Returns a single escalation by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"54a2382d-e750-47ae-8ffc-c1930d58e7b0","project_id":"da167f52-38c0-495d-b759-9ba220ebafbb","organization_id":"e7b14d44-9801-40b9-8cf7-a9d04df680c5","division_id":"1301e112-b499-4e40-a929-212fa930efd4","notice_id":null,"type":"demand_letter","type_label":"Demand Letter","status":"draft","status_label":"Draft","state":"MO","escalation_date":"2025-11-04","deadline_date":"2027-02-03","claim_amount":"370510.26","description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"54a2382d-e750-47ae-8ffc-c1930d58e7b0"},"project_id":{"type":"string","example":"da167f52-38c0-495d-b759-9ba220ebafbb"},"organization_id":{"type":"string","example":"e7b14d44-9801-40b9-8cf7-a9d04df680c5"},"division_id":{"type":"string","example":"1301e112-b499-4e40-a929-212fa930efd4"},"notice_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"demand_letter"},"type_label":{"type":"string","example":"Demand Letter"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"MO"},"escalation_date":{"type":"string","example":"2025-11-04"},"deadline_date":{"type":"string","example":"2027-02-03"},"claim_amount":{"type":"string","example":"370510.26"},"description":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Escalations"]},"put":{"summary":"Update a escalation","operationId":"updateAEscalation","description":"Applies a partial update to a escalation and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"0712a80f-f3f5-41db-97a4-39ebe89bb8d6","project_id":"5d718586-9239-4f74-a80d-df31800cdedb","organization_id":"06a4bc9c-e2df-470a-85fc-cd0d160292ec","division_id":"248ca091-60e7-4dd7-9551-940c12c5f5f5","notice_id":null,"type":"lien_filing","type_label":"Lien Filing","status":"draft","status_label":"Draft","state":"ND","escalation_date":"2025-12-23","deadline_date":"2026-10-31","claim_amount":null,"description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"0712a80f-f3f5-41db-97a4-39ebe89bb8d6"},"project_id":{"type":"string","example":"5d718586-9239-4f74-a80d-df31800cdedb"},"organization_id":{"type":"string","example":"06a4bc9c-e2df-470a-85fc-cd0d160292ec"},"division_id":{"type":"string","example":"248ca091-60e7-4dd7-9551-940c12c5f5f5"},"notice_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"lien_filing"},"type_label":{"type":"string","example":"Lien Filing"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"ND"},"escalation_date":{"type":"string","example":"2025-12-23"},"deadline_date":{"type":"string","example":"2026-10-31"},"claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Escalations"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"notice_id":{"type":"string","description":"Optional UUID of the notice this escalation follows from. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"type":{"type":"string","description":"Escalation type.","example":"demand_letter","enum":["demand_letter","lien_filing","bond_claim","lawsuit"]},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"escalation_date":{"type":"string","description":"Date the escalation is issued (YYYY-MM-DD). Must be a valid date.","example":"2026-05-24"},"deadline_date":{"type":"string","description":"Optional statutory deadline. Must be a valid date.","example":"2026-06-24","nullable":true},"claim_amount":{"type":"number","description":"Amount claimed, in dollars. Must be at least 0.","example":50000,"nullable":true},"description":{"type":"string","description":"Optional narrative included on the document. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline.","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a escalation","operationId":"deleteAEscalation","description":"Soft-deletes the escalation.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Escalation deleted."},"properties":{"message":{"type":"string","example":"Escalation deleted."}}}}}}},"tags":["Escalations"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/escalations/{escalation_uuid}/transition":{"post":{"summary":"Transition an escalation","operationId":"transitionAnEscalation","description":"Moves the escalation to another workflow status.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"a0762252-a884-4970-8eee-481b8373bc11","project_id":"4e8f79ae-a8cd-4baa-a7c1-012c2aca9d8c","organization_id":"f3f23a00-19b6-4245-a4c8-1e54ff501acc","division_id":"2655b3de-ddcf-4e85-955a-ed8c08054dc6","notice_id":null,"type":"demand_letter","type_label":"Demand Letter","status":"draft","status_label":"Draft","state":"MO","escalation_date":"2025-11-04","deadline_date":"2027-02-03","claim_amount":"370510.26","description":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"a0762252-a884-4970-8eee-481b8373bc11"},"project_id":{"type":"string","example":"4e8f79ae-a8cd-4baa-a7c1-012c2aca9d8c"},"organization_id":{"type":"string","example":"f3f23a00-19b6-4245-a4c8-1e54ff501acc"},"division_id":{"type":"string","example":"2655b3de-ddcf-4e85-955a-ed8c08054dc6"},"notice_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"demand_letter"},"type_label":{"type":"string","example":"Demand Letter"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"MO"},"escalation_date":{"type":"string","example":"2025-11-04"},"deadline_date":{"type":"string","example":"2027-02-03"},"claim_amount":{"type":"string","example":"370510.26"},"description":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Escalations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Target status: draft, sent, filed, resolved, or cancelled.","example":"sent","enum":["draft","sent","filed","resolved","cancelled"]}},"required":["status"]}}}}},"parameters":[{"in":"path","name":"escalation_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/escalations/{escalation_uuid}/order":{"post":{"summary":"Generate & mail an escalation","operationId":"generateMailAnEscalation","description":"Generates the escalation document if needed, then creates a mail order for it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"15a5d9dc-9993-4bc3-9a58-279d416ca402","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":4175,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"priority","recipient":{"name":"Rowan Gulgowski","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"15a5d9dc-9993-4bc3-9a58-279d416ca402"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":4175},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"priority"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Rowan Gulgowski"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Escalations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"billing_method":{"type":"string","description":"How the order is paid for: prepay (debit credits now), invoice (bill later), or credit_balance.","example":"credit_balance","enum":["prepay","invoice","credit_balance"],"nullable":true},"amount_cents":{"type":"integer","description":"Optional caller-declared amount in cents. The authoritative price is still computed server-side. Must be at least 0.","example":27,"nullable":true},"mail_class":{"type":"string","description":"USPS mail class for the parcel.","example":"certified","enum":["first_class","certified","priority"],"nullable":true},"recipient_name":{"type":"string","description":"Name of the party the document is mailed to. Must not be greater than 255 characters.","example":"Property Owner LLC"},"recipient_address_line_1":{"type":"string","description":"Recipient street address, line 1. Must not be greater than 255 characters.","example":"200 Main Street"},"recipient_address_line_2":{"type":"string","description":"Recipient street address, line 2. Must not be greater than 255 characters.","example":"n","nullable":true},"recipient_city":{"type":"string","description":"Recipient city. Must not be greater than 255 characters.","example":"Austin"},"recipient_state":{"type":"string","description":"Recipient two-letter US state code. Must be 2 characters.","example":"TX"},"recipient_zip":{"type":"string","description":"Recipient postal code. Must not be greater than 10 characters.","example":"78702"},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["recipient_name","recipient_address_line_1","recipient_city","recipient_state","recipient_zip"]}}}}},"parameters":[{"in":"path","name":"escalation_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/fulfillment-requests":{"get":{"summary":"List fulfillment requests","operationId":"listFulfillmentRequests","description":"Paginated CLS research requests visible to the caller.","parameters":[{"in":"query","name":"type","description":"Filter by type (notice_research).","example":"notice_research","required":true,"schema":{"type":"string","description":"Filter by type (notice_research).","example":"notice_research"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"6b8e2779-bf78-4b65-83fb-7863c5c70de3","organization_id":"d4c2d0a6-01c4-463a-af95-1254c79c525a","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"a4855dc5-0acb-33c3-b921-f4291f719ca0","source_kind":"project","source_id":"c90237e9-ced5-3af6-88ea-84aeaa148878","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"a1a0a47d-e8c3-3cf0-8e6e-c1ff9dca5d1f","name":"Ernser Group","jobsite":{"line_1":"5954 Schuster Lane Apt. 042","city":"Lyricberg","state":"MO","zip":"42170-0432"}},"division_id":"3cb1f6c4-6159-4e94-8f09-74925602bd1f","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"50ccc6a6-20b8-4565-a050-447b0786b141","organization_id":"f635e347-d9f8-4d94-a54c-51c3c9348631","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"128dddd1-af1b-310e-a6a4-c38c0253b195","source_kind":"project","source_id":"3dd3dce1-4b7c-321e-848a-0aab7c899d4a","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"a6ed8703-1bb4-356c-b26b-3dab078a446c","name":"Grady Ltd","jobsite":{"line_1":"368 Kendra Gardens","city":"Corwinchester","state":"NE","zip":"11087-1102"}},"division_id":"4797f45d-f90d-4404-ba75-2c87255ee3af","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"6b8e2779-bf78-4b65-83fb-7863c5c70de3","organization_id":"d4c2d0a6-01c4-463a-af95-1254c79c525a","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"a4855dc5-0acb-33c3-b921-f4291f719ca0","source_kind":"project","source_id":"c90237e9-ced5-3af6-88ea-84aeaa148878","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"a1a0a47d-e8c3-3cf0-8e6e-c1ff9dca5d1f","name":"Ernser Group","jobsite":{"line_1":"5954 Schuster Lane Apt. 042","city":"Lyricberg","state":"MO","zip":"42170-0432"}},"division_id":"3cb1f6c4-6159-4e94-8f09-74925602bd1f","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"50ccc6a6-20b8-4565-a050-447b0786b141","organization_id":"f635e347-d9f8-4d94-a54c-51c3c9348631","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"128dddd1-af1b-310e-a6a4-c38c0253b195","source_kind":"project","source_id":"3dd3dce1-4b7c-321e-848a-0aab7c899d4a","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"a6ed8703-1bb4-356c-b26b-3dab078a446c","name":"Grady Ltd","jobsite":{"line_1":"368 Kendra Gardens","city":"Corwinchester","state":"NE","zip":"11087-1102"}},"division_id":"4797f45d-f90d-4404-ba75-2c87255ee3af","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"6b8e2779-bf78-4b65-83fb-7863c5c70de3"},"organization_id":{"type":"string","example":"d4c2d0a6-01c4-463a-af95-1254c79c525a"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"a4855dc5-0acb-33c3-b921-f4291f719ca0"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"c90237e9-ced5-3af6-88ea-84aeaa148878"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"a1a0a47d-e8c3-3cf0-8e6e-c1ff9dca5d1f"},"name":{"type":"string","example":"Ernser Group"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"5954 Schuster Lane Apt. 042"},"city":{"type":"string","example":"Lyricberg"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"42170-0432"}}}}},"division_id":{"type":"string","example":"3cb1f6c4-6159-4e94-8f09-74925602bd1f"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Fulfillment Requests"]},"post":{"summary":"Create a fulfillment request","operationId":"createAFulfillmentRequest","description":"Hands a notice-research job to CLS staff. Idempotent on idempotency_key. CLS materialises the project and notice back into your account.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"63bc1a0c-7c31-4d17-aebc-708149ce6396","organization_id":"94f918d5-2979-47bd-a116-34f5eb6fef3e","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"5e4f00df-4238-35bd-9edc-0b98dc359c80","source_kind":"project","source_id":"3c85cf54-98c1-36ed-b65a-abaafdecdfa9","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"e2398df3-051c-3810-a269-3a15e327b316","name":"Swift Inc","jobsite":{"line_1":"532 Leuschke Causeway","city":"McLaughlinstad","state":"MI","zip":"07365"}},"division_id":"921e7af0-0143-4db0-bd77-b4c0249e78d6","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"63bc1a0c-7c31-4d17-aebc-708149ce6396"},"organization_id":{"type":"string","example":"94f918d5-2979-47bd-a116-34f5eb6fef3e"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"5e4f00df-4238-35bd-9edc-0b98dc359c80"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"3c85cf54-98c1-36ed-b65a-abaafdecdfa9"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"e2398df3-051c-3810-a269-3a15e327b316"},"name":{"type":"string","example":"Swift Inc"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"532 Leuschke Causeway"},"city":{"type":"string","example":"McLaughlinstad"},"state":{"type":"string","example":"MI"},"zip":{"type":"string","example":"07365"}}}}},"division_id":{"type":"string","example":"921e7af0-0143-4db0-bd77-b4c0249e78d6"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Fulfillment Requests"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"type":{"type":"string","description":"Fulfillment type. Only notice_research is available today.","example":"notice_research","enum":["notice_research"]},"idempotency_key":{"type":"string","description":"Caller-generated key; replaying the same key returns the existing request instead of creating a duplicate. Must not be greater than 100 characters.","example":"fulfill-2026-05-24-0001"},"source_kind":{"type":"string","description":"Optional label for where this request originated. Must not be greater than 50 characters.","example":"api","nullable":true},"source_id":{"type":"string","description":"Optional caller-side id for the originating record. Must not be greater than 100 characters.","example":"job-8821","nullable":true},"payload":{"type":"object","description":"The research request body (bounded: max 32 KB, depth 6, 500 items).","example":[],"properties":{"fulfillment_scope":{"type":"string","description":"How far CLS should take it: research only, research_and_document, or full_service (research + document + mail).","example":"research_and_document","enum":["research","research_and_document","full_service"]},"division_id":{"type":"string","description":"UUID of the claimant division. Becomes the materialised project division and is_claimant party. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"claimant_role":{"type":"string","description":"Optional claimant role token (CLS vocabulary) for the materialised claimant party.","example":"sub-contractor","enum":["general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier"],"nullable":true},"parties":{"type":"array","description":"Parties you already know about, forwarded to CLS so staff do not re-discover them. Must not have more than 50 items.","example":null,"items":{"type":"object","nullable":true,"properties":{"company_name":{"type":"string","description":"Party company / legal name. This field is required when <code>payload.parties</code> is present. Must not be greater than 250 characters.","example":"Skyline Builders Inc"},"role":{"type":"string","description":"Party role in the CLS vocabulary. This field is required when <code>payload.parties</code> is present.","example":"owner-on-title","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to"]},"address":{"type":"object","description":"Party mailing address.","example":null,"properties":{"line_1":{"type":"string","description":"Party address, line 1. Must not be greater than 250 characters.","example":"12 Field Ave","nullable":true},"line_2":{"type":"string","description":"Party address, line 2. Must not be greater than 250 characters.","example":"d","nullable":true},"city":{"type":"string","description":"Party address city. Must not be greater than 100 characters.","example":"Dallas","nullable":true},"state":{"type":"string","description":"Party address two-letter state code. Must be 2 characters.","example":"TX","nullable":true},"zip":{"type":"string","description":"Party address postal code. Must not be greater than 10 characters.","example":"75201","nullable":true}},"nullable":true},"phone":{"type":"string","description":"Party phone number. Must not be greater than 50 characters.","example":"l","nullable":true},"email":{"type":"string","description":"Party email address. Must be a valid email address. Must not be greater than 255 characters.","example":"idickens@example.org","nullable":true},"is_customer":{"type":"boolean","description":"Marks the party that hired the claimant (your customer on this project). At most one party may set it.","example":true,"nullable":true}}}},"project":{"type":"object","description":"The project CLS should research and materialise.","example":[],"properties":{"external_id":{"type":"string","description":"Your id for the project; echoed back on the materialised record. Must not be greater than 100 characters.","example":"job-8821"},"name":{"type":"string","description":"Project name. Must not be greater than 250 characters.","example":"Riverside Medical Center"},"furnished_description":{"type":"string","description":"The labor and/or materials the claimant furnished, as printed on the notice. Must not be greater than 10000 characters.","example":"Electrical rough-in, wiring and light fixtures"},"contract_amount":{"type":"number","description":"Estimated total price of the labor/materials furnished, or the amount owed where the state counts unpaid balance (greater than zero).","example":48250.75},"first_furnishing_date":{"type":"string","description":"First date labor/materials were furnished. Required when the jobsite state counts from it (see required_dates per state). Must be a valid date.","example":"2026-09-01","nullable":true},"last_furnishing_date":{"type":"string","description":"Last date labor/materials were furnished. Required when the jobsite state counts from it. Must be a valid date. Must be a date after or equal to <code>payload.project.first_furnishing_date</code>.","example":"2026-09-28","nullable":true},"date_contract":{"type":"string","description":"Date of the claimant's contract. Required for AK and NH jobsites. Must be a valid date.","example":"2026-08-15","nullable":true},"project_type":{"type":"string","description":"CLS project type (same vocabulary as POST /projects). CLS researches it when omitted.","example":"com-new-build","enum":["com-new-build","com-tenant-improvement","com-apartments","res-spec-home","res-tract-home","res-condos","res-owner-occupied","res-restoration","gov-state","gov-federal","gov-education-public","gov-education-private","tribal","unknown"],"nullable":true},"jobsite":{"type":"object","description":"Where the work is performed.","example":[],"properties":{"state":{"type":"string","description":"Jobsite two-letter state code. Must be 2 characters.","example":"TX"},"line_1":{"type":"string","description":"Jobsite street address (required unless a description is given). This field is required when <code>payload.project.jobsite.description</code> is not present. Must not be greater than 250 characters.","example":"500 Riverside Dr","nullable":true},"line_2":{"type":"string","description":"Jobsite address, line 2. Must not be greater than 250 characters.","example":"b","nullable":true},"city":{"type":"string","description":"Jobsite city (required with line_1). This field is required when <code>payload.project.jobsite.line_1</code> is present. Must not be greater than 100 characters.","example":"Austin","nullable":true},"zip":{"type":"string","description":"Jobsite postal code (required with line_1). This field is required when <code>payload.project.jobsite.line_1</code> is present. Must not be greater than 10 characters.","example":"78704","nullable":true},"county":{"type":"string","description":"Jobsite county. Must not be greater than 100 characters.","example":"Travis","nullable":true},"description":{"type":"string","description":"Free-text site description, used when a street address is not known (required unless line_1 is given). This field is required when <code>payload.project.jobsite.line_1</code> is not present. Must not be greater than 500 characters.","example":"Et animi quos velit et fugiat.","nullable":true},"latitude":{"type":"number","description":"Optional jobsite latitude (-90 to 90). Must be between -90 and 90.","example":30.2672,"nullable":true},"longitude":{"type":"number","description":"Optional jobsite longitude (-180 to 180). Must be between -180 and 180.","example":-97.7431,"nullable":true}},"required":["state"]}},"required":["external_id","name","furnished_description","contract_amount","jobsite"]},"claimant":{"type":"string","description":"Prohibited. The claimant identity is derived from payload.division_id and forwarded to CLS server-side.","example":null}},"required":["fulfillment_scope","division_id","project"]},"meta":{"type":"object","description":"Optional bounded keyvalue bag stored with the request.","example":null,"properties":[],"nullable":true}},"required":["organization_id","type","idempotency_key","payload"]}}}}}},"/api/v1/fulfillment-requests/{uuid}":{"get":{"summary":"Retrieve a fulfillment request","operationId":"retrieveAFulfillmentRequest","description":"Returns a single request, including status and any research result, by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"ba1bdec4-de6a-4ccc-be33-f54b906e31d2","organization_id":"a80b3f51-fcbf-46cf-8499-28c036ff47ae","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"bfc53181-d647-36b2-9080-f9c2b76006f4","source_kind":"project","source_id":"5d093e7f-5aae-3aa3-bece-f6e784dcbd67","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"445bd3f6-8f2c-38cb-aa04-2f4e1edb32bb","name":"Baumbach Ltd","jobsite":{"line_1":"427 Predovic Ridge","city":"Baileemouth","state":"KS","zip":"32375-9947"}},"division_id":"761b6726-c71c-4166-8ab7-fb1ffcc8c6a1","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"ba1bdec4-de6a-4ccc-be33-f54b906e31d2"},"organization_id":{"type":"string","example":"a80b3f51-fcbf-46cf-8499-28c036ff47ae"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"bfc53181-d647-36b2-9080-f9c2b76006f4"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"5d093e7f-5aae-3aa3-bece-f6e784dcbd67"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"445bd3f6-8f2c-38cb-aa04-2f4e1edb32bb"},"name":{"type":"string","example":"Baumbach Ltd"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"427 Predovic Ridge"},"city":{"type":"string","example":"Baileemouth"},"state":{"type":"string","example":"KS"},"zip":{"type":"string","example":"32375-9947"}}}}},"division_id":{"type":"string","example":"761b6726-c71c-4166-8ab7-fb1ffcc8c6a1"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Fulfillment Requests"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/fulfillment-requests/{fulfillment_request_uuid}/cancel":{"post":{"summary":"Cancel a fulfillment request","operationId":"cancelAFulfillmentRequest","description":"Cancels the request if CLS has not already completed it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"c45c6758-f10c-4ef8-babc-774a61b6c5cd","organization_id":"8aadafae-38fd-440e-96d2-8585746e2929","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","source_kind":"project","source_id":"6b72fe4a-5b40-307c-bc24-f79acf9a1bb9","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"977e5426-8d13-3824-86aa-b092f8ae52c5","name":"O'Kon and Sons","jobsite":{"line_1":"80841 Mya Lane Apt. 042","city":"Lyricberg","state":"MO","zip":"42170-0432"}},"division_id":"0a6fd34b-6715-4cc3-8123-7e548702dd58","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"c45c6758-f10c-4ef8-babc-774a61b6c5cd"},"organization_id":{"type":"string","example":"8aadafae-38fd-440e-96d2-8585746e2929"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"6b72fe4a-5b40-307c-bc24-f79acf9a1bb9"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"977e5426-8d13-3824-86aa-b092f8ae52c5"},"name":{"type":"string","example":"O'Kon and Sons"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"80841 Mya Lane Apt. 042"},"city":{"type":"string","example":"Lyricberg"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"42170-0432"}}}}},"division_id":{"type":"string","example":"0a6fd34b-6715-4cc3-8123-7e548702dd58"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Fulfillment Requests"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"Optional human-readable reason for cancelling the fulfillment request. Must not be greater than 500 characters.","example":"Duplicate request","nullable":true}}}}}}},"parameters":[{"in":"path","name":"fulfillment_request_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/fulfillment-requests/{fulfillment_request_uuid}/retry":{"post":{"summary":"Retry a fulfillment request","operationId":"retryAFulfillmentRequest","description":"Resubmits a failed request to CLS.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"c6df5f9c-ffa5-4ef1-b5d8-5a62b3c56920","organization_id":"9ac9d519-464d-4ef7-8b62-7060be4a1f6c","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","source_kind":"project","source_id":"6b72fe4a-5b40-307c-bc24-f79acf9a1bb9","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"977e5426-8d13-3824-86aa-b092f8ae52c5","name":"O'Kon and Sons","jobsite":{"line_1":"80841 Mya Lane Apt. 042","city":"Lyricberg","state":"MO","zip":"42170-0432"}},"division_id":"70a2f55b-6581-479b-9898-bc50650d13f6","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"c6df5f9c-ffa5-4ef1-b5d8-5a62b3c56920"},"organization_id":{"type":"string","example":"9ac9d519-464d-4ef7-8b62-7060be4a1f6c"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"6b72fe4a-5b40-307c-bc24-f79acf9a1bb9"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"977e5426-8d13-3824-86aa-b092f8ae52c5"},"name":{"type":"string","example":"O'Kon and Sons"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"80841 Mya Lane Apt. 042"},"city":{"type":"string","example":"Lyricberg"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"42170-0432"}}}}},"division_id":{"type":"string","example":"70a2f55b-6581-479b-9898-bc50650d13f6"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Fulfillment Requests"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"Optional human-readable reason for retrying the fulfillment request. Must not be greater than 500 characters.","example":"CLS asked us to resubmit","nullable":true}}}}}}},"parameters":[{"in":"path","name":"fulfillment_request_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/fulfillment-requests/{fulfillment_request_uuid}/approve-charges":{"post":{"summary":"Approve additional fulfillment charges","operationId":"approveAdditionalFulfillmentCharges","description":"For a full-service request in `payment_required`: CLS research found more recipients than postage is held for. Holds the extra postage (`payment_due.additional_credits`) from your CLS-eligible credits and releases the ticket back to CLS. Responds 402 with the shortfall if your balance cannot cover it yet -- buy credits and call again.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"d8d9d58a-a2e1-492f-8028-aa2088a7e671","organization_id":"f08d29f2-0ccf-45b0-978d-6076b2a1872e","requested_by_user_id":null,"type":"notice_research","status":"queued","status_label":"Queued","idempotency_key":"bfc53181-d647-36b2-9080-f9c2b76006f4","source_kind":"project","source_id":"5d093e7f-5aae-3aa3-bece-f6e784dcbd67","cls_resource_type":null,"cls_resource_id":null,"status_reason":null,"last_error":null,"retry_count":0,"payload":{"fulfillment_scope":"research","project":{"external_id":"445bd3f6-8f2c-38cb-aa04-2f4e1edb32bb","name":"Baumbach Ltd","jobsite":{"line_1":"427 Predovic Ridge","city":"Baileemouth","state":"KS","zip":"32375-9947"}},"division_id":"59effae1-659e-4347-aa46-210a57cb448b","claimant_role":"sub-contractor"},"meta":null,"result":null,"postage":null,"payment_due":null,"submitted_at":null,"fulfilled_at":null,"failed_at":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"d8d9d58a-a2e1-492f-8028-aa2088a7e671"},"organization_id":{"type":"string","example":"f08d29f2-0ccf-45b0-978d-6076b2a1872e"},"requested_by_user_id":{"type":"string","example":null,"nullable":true},"type":{"type":"string","example":"notice_research"},"status":{"type":"string","example":"queued"},"status_label":{"type":"string","example":"Queued"},"idempotency_key":{"type":"string","example":"bfc53181-d647-36b2-9080-f9c2b76006f4"},"source_kind":{"type":"string","example":"project"},"source_id":{"type":"string","example":"5d093e7f-5aae-3aa3-bece-f6e784dcbd67"},"cls_resource_type":{"type":"string","example":null,"nullable":true},"cls_resource_id":{"type":"string","example":null,"nullable":true},"status_reason":{"type":"string","example":null,"nullable":true},"last_error":{"type":"string","example":null,"nullable":true},"retry_count":{"type":"integer","example":0},"payload":{"type":"object","properties":{"fulfillment_scope":{"type":"string","example":"research"},"project":{"type":"object","properties":{"external_id":{"type":"string","example":"445bd3f6-8f2c-38cb-aa04-2f4e1edb32bb"},"name":{"type":"string","example":"Baumbach Ltd"},"jobsite":{"type":"object","properties":{"line_1":{"type":"string","example":"427 Predovic Ridge"},"city":{"type":"string","example":"Baileemouth"},"state":{"type":"string","example":"KS"},"zip":{"type":"string","example":"32375-9947"}}}}},"division_id":{"type":"string","example":"59effae1-659e-4347-aa46-210a57cb448b"},"claimant_role":{"type":"string","example":"sub-contractor"}}},"meta":{"type":"string","example":null,"nullable":true},"result":{"type":"string","example":null,"nullable":true},"postage":{"type":"string","example":null,"nullable":true},"payment_due":{"type":"string","example":null,"nullable":true},"submitted_at":{"type":"string","example":null,"nullable":true},"fulfilled_at":{"type":"string","example":null,"nullable":true},"failed_at":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Fulfillment Requests"]},"parameters":[{"in":"path","name":"fulfillment_request_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/fulfillment-requests/{fulfillment_request_uuid}/files/{file_uuid}/download":{"get":{"summary":"Download a fulfillment file","operationId":"downloadAFulfillmentFile","description":"Streams a file CLS attached to the fulfilled ticket (research documents, jobsite files), from our own copy. Files are listed under `files` on the fulfillment request once copied.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"401":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Unauthenticated."},"properties":{"message":{"type":"string","example":"Unauthenticated."}}}}}}},"tags":["Fulfillment Requests"]},"parameters":[{"in":"path","name":"fulfillment_request_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}},{"in":"path","name":"file_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/jobsites":{"get":{"summary":"List jobsites","operationId":"listJobsites","description":"Paginated jobsites visible to the caller, newest first.","parameters":[{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"is_primary","description":"Filter by primary flag.","example":true,"required":true,"schema":{"type":"boolean","description":"Filter by primary flag.","example":true}},{"in":"query","name":"search","description":"Case-insensitive partial match on name and address.","example":"architecto","required":true,"schema":{"type":"string","description":"Case-insensitive partial match on name and address.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"6166e83a-ef90-402f-b62b-650c560f4c67","project_id":"48b4d02e-478d-4f5d-ad95-009bd77ce550","name":"eius et Site","address":{"line_1":"764 Ernser Parkways Suite 841","line_2":null,"city":"Cecilburgh","state":"WI","zip":"02042","county":null},"apn":null,"legal_description":"Adipisci quidem nostrum qui commodi incidunt iure.","is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"edeaaf87-31fe-48dc-a4e8-8881be01f149","project_id":"40f27878-da1b-4fe7-bb85-ae9b2598c000","name":"ratione iure Site","address":{"line_1":"441 Swaniawski Roads Apt. 721","line_2":null,"city":"Brianneborough","state":"AL","zip":"84131-2753","county":"error"},"apn":null,"legal_description":null,"is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"6166e83a-ef90-402f-b62b-650c560f4c67","project_id":"48b4d02e-478d-4f5d-ad95-009bd77ce550","name":"eius et Site","address":{"line_1":"764 Ernser Parkways Suite 841","line_2":null,"city":"Cecilburgh","state":"WI","zip":"02042","county":null},"apn":null,"legal_description":"Adipisci quidem nostrum qui commodi incidunt iure.","is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"edeaaf87-31fe-48dc-a4e8-8881be01f149","project_id":"40f27878-da1b-4fe7-bb85-ae9b2598c000","name":"ratione iure Site","address":{"line_1":"441 Swaniawski Roads Apt. 721","line_2":null,"city":"Brianneborough","state":"AL","zip":"84131-2753","county":"error"},"apn":null,"legal_description":null,"is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"6166e83a-ef90-402f-b62b-650c560f4c67"},"project_id":{"type":"string","example":"48b4d02e-478d-4f5d-ad95-009bd77ce550"},"name":{"type":"string","example":"eius et Site"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"764 Ernser Parkways Suite 841"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Cecilburgh"},"state":{"type":"string","example":"WI"},"zip":{"type":"string","example":"02042"},"county":{"type":"string","example":null,"nullable":true}}},"apn":{"type":"string","example":null,"nullable":true},"legal_description":{"type":"string","example":"Adipisci quidem nostrum qui commodi incidunt iure."},"is_primary":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Jobsites"]},"post":{"summary":"Create a jobsite","operationId":"createAJobsite","description":"Creates a jobsite and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"445809ee-1be8-447d-aeb1-37371eb63b1d","project_id":"9a60bab2-64b8-4692-a3b6-3f0ebfffbf9e","name":"eius et Site","address":{"line_1":"764 Ernser Parkways Suite 841","line_2":null,"city":"Cecilburgh","state":"WI","zip":"02042","county":null},"apn":null,"legal_description":"Adipisci quidem nostrum qui commodi incidunt iure.","is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"445809ee-1be8-447d-aeb1-37371eb63b1d"},"project_id":{"type":"string","example":"9a60bab2-64b8-4692-a3b6-3f0ebfffbf9e"},"name":{"type":"string","example":"eius et Site"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"764 Ernser Parkways Suite 841"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Cecilburgh"},"state":{"type":"string","example":"WI"},"zip":{"type":"string","example":"02042"},"county":{"type":"string","example":null,"nullable":true}}},"apn":{"type":"string","example":null,"nullable":true},"legal_description":{"type":"string","example":"Adipisci quidem nostrum qui commodi incidunt iure."},"is_primary":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Jobsites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"name":{"type":"string","description":"Label for the jobsite. Must not be greater than 255 characters.","example":"Main Site"},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd"},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"b","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin"},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701"},"county":{"type":"string","description":"County name. Must not be greater than 255 characters.","example":"Travis","nullable":true},"apn":{"type":"string","description":"Assessor parcel number. Must not be greater than 255 characters.","example":"123-456-789","nullable":true},"legal_description":{"type":"string","description":"Full legal description of the property. Must not be greater than 10000 characters.","example":"Lot 5, Block 2, Example Subdivision","nullable":true},"is_primary":{"type":"boolean","description":"Whether this is the project primary jobsite.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["project_id","name","address_line_1","city","state","zip"]}}}}}},"/api/v1/jobsites/{uuid}":{"get":{"summary":"Retrieve a jobsite","operationId":"retrieveAJobsite","description":"Returns a single jobsite by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"79633fc6-3644-4e14-ab18-21b87d751294","project_id":"db5e3d6b-0f33-4e6e-8693-1332c8a98b2d","name":"aut adipisci Site","address":{"line_1":"41881 Leo Pine Apt. 627","line_2":null,"city":"South Isidrostad","state":"WV","zip":"17091-7515","county":"non"},"apn":"584-087-043","legal_description":null,"is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"79633fc6-3644-4e14-ab18-21b87d751294"},"project_id":{"type":"string","example":"db5e3d6b-0f33-4e6e-8693-1332c8a98b2d"},"name":{"type":"string","example":"aut adipisci Site"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"41881 Leo Pine Apt. 627"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"South Isidrostad"},"state":{"type":"string","example":"WV"},"zip":{"type":"string","example":"17091-7515"},"county":{"type":"string","example":"non"}}},"apn":{"type":"string","example":"584-087-043"},"legal_description":{"type":"string","example":null,"nullable":true},"is_primary":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Jobsites"]},"put":{"summary":"Update a jobsite","operationId":"updateAJobsite","description":"Applies a partial update to a jobsite and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"fb8b9edd-04dd-441d-a19a-fcecf8eb53a4","project_id":"4b8120d3-fba0-4415-83c5-db1220762d62","name":"eius et Site","address":{"line_1":"764 Ernser Parkways Suite 841","line_2":null,"city":"Cecilburgh","state":"WI","zip":"02042","county":null},"apn":null,"legal_description":"Adipisci quidem nostrum qui commodi incidunt iure.","is_primary":false,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"fb8b9edd-04dd-441d-a19a-fcecf8eb53a4"},"project_id":{"type":"string","example":"4b8120d3-fba0-4415-83c5-db1220762d62"},"name":{"type":"string","example":"eius et Site"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"764 Ernser Parkways Suite 841"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Cecilburgh"},"state":{"type":"string","example":"WI"},"zip":{"type":"string","example":"02042"},"county":{"type":"string","example":null,"nullable":true}}},"apn":{"type":"string","example":null,"nullable":true},"legal_description":{"type":"string","example":"Adipisci quidem nostrum qui commodi incidunt iure."},"is_primary":{"type":"boolean","example":false},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Jobsites"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Label for the jobsite. Must not be greater than 255 characters.","example":"Main Site"},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd"},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"b","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin"},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701"},"county":{"type":"string","description":"County name. Must not be greater than 255 characters.","example":"Travis","nullable":true},"apn":{"type":"string","description":"Assessor parcel number. Must not be greater than 255 characters.","example":"123-456-789","nullable":true},"legal_description":{"type":"string","description":"Full legal description of the property. Must not be greater than 10000 characters.","example":"Lot 5, Block 2, Example Subdivision","nullable":true},"is_primary":{"type":"boolean","description":"Whether this is the project primary jobsite.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a jobsite","operationId":"deleteAJobsite","description":"Soft-deletes the jobsite.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Jobsite deleted."},"properties":{"message":{"type":"string","example":"Jobsite deleted."}}}}}}},"tags":["Jobsites"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/notices":{"get":{"summary":"List notices","operationId":"listNotices","description":"Paginated notices visible to the caller, newest first.","parameters":[{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"type","description":"Filter by type.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by type.","example":"architecto"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"state","description":"Filter by two-letter US state code.","example":"CA","required":true,"schema":{"type":"string","description":"Filter by two-letter US state code.","example":"CA"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"87a78e82-e91a-4bfa-8442-a07d1562d7f6","notice_number":"N-260222-C6P001","project_id":"00b6aa9b-f819-4c5a-aecf-ac40e507f589","organization_id":"068f1505-1d36-4b04-93f5-cd294b487e6e","division_id":"845ad3bb-e734-45a9-83de-c4d13e05bcb8","type":"bond_claim","type_label":"Bond Claim","status":"draft","status_label":"Draft","state":"RI","notice_date":"2026-02-22","deadline_date":"2026-11-08","deadline_source":null,"first_furnishing_date":"2026-02-11","last_furnishing_date":"2026-09-10","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"280415.85","original_claim_amount":null,"description":"Accusantium harum mollitia modi deserunt aut ab.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bba7d89a-fd55-4afa-863b-d47e7e56b952","notice_number":"N-260902-K66001","project_id":"7ab1a274-abc6-4a72-b974-18ec78e7899e","organization_id":"1ded52c3-268c-4404-8d73-bc0014f16781","division_id":"ef8f65c7-32e0-4e91-9861-527be667a14f","type":"lien","type_label":"Lien Notice","status":"draft","status_label":"Draft","state":"CT","notice_date":"2026-09-02","deadline_date":null,"deadline_source":null,"first_furnishing_date":"2026-07-11","last_furnishing_date":"2026-10-03","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"448226.98","original_claim_amount":null,"description":"Rem ea ut aut deserunt.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"87a78e82-e91a-4bfa-8442-a07d1562d7f6","notice_number":"N-260222-C6P001","project_id":"00b6aa9b-f819-4c5a-aecf-ac40e507f589","organization_id":"068f1505-1d36-4b04-93f5-cd294b487e6e","division_id":"845ad3bb-e734-45a9-83de-c4d13e05bcb8","type":"bond_claim","type_label":"Bond Claim","status":"draft","status_label":"Draft","state":"RI","notice_date":"2026-02-22","deadline_date":"2026-11-08","deadline_source":null,"first_furnishing_date":"2026-02-11","last_furnishing_date":"2026-09-10","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"280415.85","original_claim_amount":null,"description":"Accusantium harum mollitia modi deserunt aut ab.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bba7d89a-fd55-4afa-863b-d47e7e56b952","notice_number":"N-260902-K66001","project_id":"7ab1a274-abc6-4a72-b974-18ec78e7899e","organization_id":"1ded52c3-268c-4404-8d73-bc0014f16781","division_id":"ef8f65c7-32e0-4e91-9861-527be667a14f","type":"lien","type_label":"Lien Notice","status":"draft","status_label":"Draft","state":"CT","notice_date":"2026-09-02","deadline_date":null,"deadline_source":null,"first_furnishing_date":"2026-07-11","last_furnishing_date":"2026-10-03","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"448226.98","original_claim_amount":null,"description":"Rem ea ut aut deserunt.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"87a78e82-e91a-4bfa-8442-a07d1562d7f6"},"notice_number":{"type":"string","example":"N-260222-C6P001"},"project_id":{"type":"string","example":"00b6aa9b-f819-4c5a-aecf-ac40e507f589"},"organization_id":{"type":"string","example":"068f1505-1d36-4b04-93f5-cd294b487e6e"},"division_id":{"type":"string","example":"845ad3bb-e734-45a9-83de-c4d13e05bcb8"},"type":{"type":"string","example":"bond_claim"},"type_label":{"type":"string","example":"Bond Claim"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"RI"},"notice_date":{"type":"string","example":"2026-02-22"},"deadline_date":{"type":"string","example":"2026-11-08"},"deadline_source":{"type":"string","example":null,"nullable":true},"first_furnishing_date":{"type":"string","example":"2026-02-11"},"last_furnishing_date":{"type":"string","example":"2026-09-10"},"deadline_rule":{"type":"object","properties":{"required":{"type":"string","example":null,"nullable":true},"basis":{"type":"string","example":"not_applicable"},"days":{"type":"string","example":null,"nullable":true},"deadline":{"type":"string","example":null,"nullable":true},"rolling_lookback_days":{"type":"string","example":null,"nullable":true},"explanation":{"type":"string","example":"Serve-by deadlines are only calculated for preliminary notices."},"source":{"type":"string","example":null,"nullable":true},"verified":{"type":"boolean","example":false}}},"claim_amount":{"type":"string","example":"280415.85"},"original_claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Accusantium harum mollitia modi deserunt aut ab."},"is_amendment":{"type":"boolean","example":false},"parent_notice_id":{"type":"string","example":null,"nullable":true},"amendment_reason":{"type":"string","example":null,"nullable":true},"amendment_reason_label":{"type":"string","example":null,"nullable":true},"amendment_sequence":{"type":"integer","example":1},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Notices"]},"post":{"summary":"Create a notice","operationId":"createANotice","description":"Creates a notice and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"44d02522-5bd1-4ed5-a127-82cfb48d2afd","notice_number":"N-260518-7DQ001","project_id":"0d7cf48b-0214-4dc9-8fc8-9ca13bb172ef","organization_id":"44bc4702-7e7d-451a-9473-12de34c1e46a","division_id":"f2fb3327-0194-4877-a51d-2b8aaafbb12d","type":"lien","type_label":"Lien Notice","status":"draft","status_label":"Draft","state":"IL","notice_date":"2026-05-18","deadline_date":null,"deadline_source":null,"first_furnishing_date":"2026-02-11","last_furnishing_date":"2026-09-10","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"280415.85","original_claim_amount":null,"description":"Accusantium harum mollitia modi deserunt aut ab.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"44d02522-5bd1-4ed5-a127-82cfb48d2afd"},"notice_number":{"type":"string","example":"N-260518-7DQ001"},"project_id":{"type":"string","example":"0d7cf48b-0214-4dc9-8fc8-9ca13bb172ef"},"organization_id":{"type":"string","example":"44bc4702-7e7d-451a-9473-12de34c1e46a"},"division_id":{"type":"string","example":"f2fb3327-0194-4877-a51d-2b8aaafbb12d"},"type":{"type":"string","example":"lien"},"type_label":{"type":"string","example":"Lien Notice"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"IL"},"notice_date":{"type":"string","example":"2026-05-18"},"deadline_date":{"type":"string","example":null,"nullable":true},"deadline_source":{"type":"string","example":null,"nullable":true},"first_furnishing_date":{"type":"string","example":"2026-02-11"},"last_furnishing_date":{"type":"string","example":"2026-09-10"},"deadline_rule":{"type":"object","properties":{"required":{"type":"string","example":null,"nullable":true},"basis":{"type":"string","example":"not_applicable"},"days":{"type":"string","example":null,"nullable":true},"deadline":{"type":"string","example":null,"nullable":true},"rolling_lookback_days":{"type":"string","example":null,"nullable":true},"explanation":{"type":"string","example":"Serve-by deadlines are only calculated for preliminary notices."},"source":{"type":"string","example":null,"nullable":true},"verified":{"type":"boolean","example":false}}},"claim_amount":{"type":"string","example":"280415.85"},"original_claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Accusantium harum mollitia modi deserunt aut ab."},"is_amendment":{"type":"boolean","example":false},"parent_notice_id":{"type":"string","example":null,"nullable":true},"amendment_reason":{"type":"string","example":null,"nullable":true},"amendment_reason_label":{"type":"string","example":null,"nullable":true},"amendment_sequence":{"type":"integer","example":1},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Notices"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"division_id":{"type":"string","description":"UUID of the claimant division. Optional: inherited from the project. Supplying a division other than the project one is rejected (422). Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"type":{"type":"string","description":"Notice type: preliminary, stop_payment, lien, or bond_claim.","example":"preliminary","enum":["preliminary","stop_payment","lien","bond_claim"]},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"notice_date":{"type":"string","description":"Date the notice is issued (YYYY-MM-DD). Must be a valid date.","example":"2026-05-24"},"deadline_date":{"type":"string","description":"Serve-by deadline. Omit it to have it calculated for preliminary notices from the state rule and furnishing dates (see deadline_rule in the response); send null on update to switch back to the calculated date. Must be a valid date. Must be a date after <code>notice_date</code>.","example":"2026-06-24","nullable":true},"first_furnishing_date":{"type":"string","description":"First date the claimant furnished labor or materials. Drives the calculated serve-by deadline in most states; required for a preliminary notice in states that count from it (see required_dates per state). Must be a valid date.","example":"2026-09-15","nullable":true},"last_furnishing_date":{"type":"string","description":"Last date the claimant furnished labor or materials (used where the state counts from last furnishing); required for a preliminary notice in those states. Must be a valid date. Must be a date after or equal to <code>first_furnishing_date</code>.","example":"2026-10-20","nullable":true},"claim_amount":{"type":"number","description":"Amount claimed, in dollars (greater than zero). On a preliminary notice this is the estimated total price of the labor/materials furnished, or the amount owed where the state counts unpaid balance.","example":50000},"original_claim_amount":{"type":"number","description":"For an amendment, the claim amount on the notice being amended. Must be at least 0.","example":27,"nullable":true},"parent_notice_id":{"type":"string","description":"UUID of the notice this one amends. Presence makes this an amendment. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"amendment_reason":{"type":"string","description":"Why the parent notice is being amended. Required when parent_notice_id is set. This field is required when <code>parent_notice_id</code> is present.","example":"corrected_amount","enum":["amount_changed","scope_changed","party_correction","other"],"nullable":true},"description":{"type":"string","description":"The labor and/or materials furnished, printed on the notice. Must not be greater than 10000 characters.","example":"Electrical rough-in, wiring and light fixtures"},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline. metadata.party_grid_max (4 or 8, default 8) caps the party boxes on the first page of a preliminary notice; the rest are listed on an Exhibit A page. metadata.mail_pack=true adds a cover page per served party (acknowledgment of receipt, or a proof-of-service affidavit in CA; metadata.service_method / metadata.service_date fill the affidavit). metadata.months_work_performed (string or list) prints the month(s) covered, e.g. on a Texas monthly notice.","example":null,"properties":{"party_grid_max":{"type":"integer","description":"","example":8,"enum":[4,8]},"mail_pack":{"type":"boolean","description":"","example":true},"service_method":{"type":"string","description":"Must not be greater than 120 characters.","example":"n"},"service_date":{"type":"string","description":"Must be a valid date.","example":"2026-10-05T15:49:19"},"months_work_performed":{"type":"string","description":"","example":null,"nullable":true}},"nullable":true}},"required":["project_id","organization_id","type","state","notice_date","claim_amount","description"]}}}}}},"/api/v1/notices/{uuid}":{"get":{"summary":"Retrieve a notice","operationId":"retrieveANotice","description":"Returns a single notice by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"6473e2d5-b977-403d-87f6-27a4219d8627","notice_number":"N-251104-9FV001","project_id":"7d724e6e-f60f-4000-b86e-faccba78e026","organization_id":"00fd486f-3e89-46a9-93b0-46da60dd96d6","division_id":"06fe9388-e339-4be8-80bb-59d037ea9c12","type":"preliminary","type_label":"Preliminary Notice","status":"draft","status_label":"Draft","state":"MO","notice_date":"2025-11-04","deadline_date":"2027-02-03","deadline_source":null,"first_furnishing_date":"2025-12-20","last_furnishing_date":"2026-09-20","deadline_rule":{"required":true,"basis":"varies","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"The MO deadline depends on the facts of the project (varies) and is not calculated; set deadline_date yourself.","source":null,"verified":false},"claim_amount":"99055.43","original_claim_amount":null,"description":"Et et modi ipsum nostrum.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"6473e2d5-b977-403d-87f6-27a4219d8627"},"notice_number":{"type":"string","example":"N-251104-9FV001"},"project_id":{"type":"string","example":"7d724e6e-f60f-4000-b86e-faccba78e026"},"organization_id":{"type":"string","example":"00fd486f-3e89-46a9-93b0-46da60dd96d6"},"division_id":{"type":"string","example":"06fe9388-e339-4be8-80bb-59d037ea9c12"},"type":{"type":"string","example":"preliminary"},"type_label":{"type":"string","example":"Preliminary Notice"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"MO"},"notice_date":{"type":"string","example":"2025-11-04"},"deadline_date":{"type":"string","example":"2027-02-03"},"deadline_source":{"type":"string","example":null,"nullable":true},"first_furnishing_date":{"type":"string","example":"2025-12-20"},"last_furnishing_date":{"type":"string","example":"2026-09-20"},"deadline_rule":{"type":"object","properties":{"required":{"type":"boolean","example":true},"basis":{"type":"string","example":"varies"},"days":{"type":"string","example":null,"nullable":true},"deadline":{"type":"string","example":null,"nullable":true},"rolling_lookback_days":{"type":"string","example":null,"nullable":true},"explanation":{"type":"string","example":"The MO deadline depends on the facts of the project (varies) and is not calculated; set deadline_date yourself."},"source":{"type":"string","example":null,"nullable":true},"verified":{"type":"boolean","example":false}}},"claim_amount":{"type":"string","example":"99055.43"},"original_claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Et et modi ipsum nostrum."},"is_amendment":{"type":"boolean","example":false},"parent_notice_id":{"type":"string","example":null,"nullable":true},"amendment_reason":{"type":"string","example":null,"nullable":true},"amendment_reason_label":{"type":"string","example":null,"nullable":true},"amendment_sequence":{"type":"integer","example":1},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Notices"]},"put":{"summary":"Update a notice","operationId":"updateANotice","description":"Applies a partial update to a notice and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"5b113d62-8f68-464b-83aa-06bdcee18cc0","notice_number":"N-251120-6MK001","project_id":"b4919775-4341-4ec1-8901-2a017fc6ed64","organization_id":"3313285e-20d2-49f2-aa0d-29634aa32fd7","division_id":"cba56efe-184a-4a06-ac9b-72f44081448b","type":"bond_claim","type_label":"Bond Claim","status":"draft","status_label":"Draft","state":"OK","notice_date":"2025-11-20","deadline_date":"2027-01-06","deadline_source":null,"first_furnishing_date":"2026-02-23","last_furnishing_date":"2026-09-26","deadline_rule":{"required":null,"basis":"not_applicable","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"Serve-by deadlines are only calculated for preliminary notices.","source":null,"verified":false},"claim_amount":"315532.61","original_claim_amount":null,"description":"Provident perspiciatis quo omnis nostrum aut adipisci quidem.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5b113d62-8f68-464b-83aa-06bdcee18cc0"},"notice_number":{"type":"string","example":"N-251120-6MK001"},"project_id":{"type":"string","example":"b4919775-4341-4ec1-8901-2a017fc6ed64"},"organization_id":{"type":"string","example":"3313285e-20d2-49f2-aa0d-29634aa32fd7"},"division_id":{"type":"string","example":"cba56efe-184a-4a06-ac9b-72f44081448b"},"type":{"type":"string","example":"bond_claim"},"type_label":{"type":"string","example":"Bond Claim"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"OK"},"notice_date":{"type":"string","example":"2025-11-20"},"deadline_date":{"type":"string","example":"2027-01-06"},"deadline_source":{"type":"string","example":null,"nullable":true},"first_furnishing_date":{"type":"string","example":"2026-02-23"},"last_furnishing_date":{"type":"string","example":"2026-09-26"},"deadline_rule":{"type":"object","properties":{"required":{"type":"string","example":null,"nullable":true},"basis":{"type":"string","example":"not_applicable"},"days":{"type":"string","example":null,"nullable":true},"deadline":{"type":"string","example":null,"nullable":true},"rolling_lookback_days":{"type":"string","example":null,"nullable":true},"explanation":{"type":"string","example":"Serve-by deadlines are only calculated for preliminary notices."},"source":{"type":"string","example":null,"nullable":true},"verified":{"type":"boolean","example":false}}},"claim_amount":{"type":"string","example":"315532.61"},"original_claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Provident perspiciatis quo omnis nostrum aut adipisci quidem."},"is_amendment":{"type":"boolean","example":false},"parent_notice_id":{"type":"string","example":null,"nullable":true},"amendment_reason":{"type":"string","example":null,"nullable":true},"amendment_reason_label":{"type":"string","example":null,"nullable":true},"amendment_sequence":{"type":"integer","example":1},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Notices"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Notice type.","example":"preliminary","enum":["preliminary","stop_payment","lien","bond_claim"]},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA"},"notice_date":{"type":"string","description":"Date the notice is issued (YYYY-MM-DD). Must be a valid date.","example":"2026-05-24"},"deadline_date":{"type":"string","description":"Serve-by deadline. Send null to switch back to the calculated date (preliminary notices; see deadline_rule in the response). Must be a valid date.","example":"2026-06-24","nullable":true},"first_furnishing_date":{"type":"string","description":"First date the claimant furnished labor or materials. Drives the calculated serve-by deadline in most states. Must be a valid date.","example":"2026-09-15","nullable":true},"last_furnishing_date":{"type":"string","description":"Last date the claimant furnished labor or materials (used where the state counts from last furnishing). Must be a valid date. Must be a date after or equal to <code>first_furnishing_date</code>.","example":"2026-10-20","nullable":true},"claim_amount":{"type":"number","description":"Amount claimed, in dollars.","example":50000},"description":{"type":"string","description":"The labor and/or materials furnished, printed on the notice. Cannot be cleared. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et."},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline. metadata.party_grid_max (4 or 8, default 8) caps the party boxes on the first page of a preliminary notice; the rest are listed on an Exhibit A page. metadata.mail_pack=true adds a cover page per served party (acknowledgment of receipt, or a proof-of-service affidavit in CA; metadata.service_method / metadata.service_date fill the affidavit). metadata.months_work_performed (string or list) prints the month(s) covered, e.g. on a Texas monthly notice.","example":null,"properties":{"party_grid_max":{"type":"integer","description":"","example":4,"enum":[4,8]},"mail_pack":{"type":"boolean","description":"","example":true},"service_method":{"type":"string","description":"Must not be greater than 120 characters.","example":"v"},"service_date":{"type":"string","description":"Must be a valid date.","example":"2026-10-05T15:49:19"},"months_work_performed":{"type":"string","description":"","example":null,"nullable":true}},"nullable":true}}}}}}},"delete":{"summary":"Delete a notice","operationId":"deleteANotice","description":"Soft-deletes the notice.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Notice deleted."},"properties":{"message":{"type":"string","example":"Notice deleted."}}}}}}},"tags":["Notices"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/notices/{notice_uuid}/transition":{"post":{"summary":"Transition a notice","operationId":"transitionANotice","description":"Moves the notice to another workflow status. Reaching 'generated' is not allowed here - generate the document instead.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"e254bdbd-54dd-4d5b-9c8a-eb1e7ddd22e5","notice_number":"N-251104-X9H001","project_id":"3de0cff4-44c5-4bd3-8a21-230c362f28a1","organization_id":"e354c530-1cf6-445e-9bd4-3b1e4ddb5e59","division_id":"00ecc154-47cf-4f38-b957-c99063163eb9","type":"preliminary","type_label":"Preliminary Notice","status":"draft","status_label":"Draft","state":"MO","notice_date":"2025-11-04","deadline_date":"2027-02-03","deadline_source":null,"first_furnishing_date":"2025-12-20","last_furnishing_date":"2026-09-20","deadline_rule":{"required":true,"basis":"varies","days":null,"deadline":null,"rolling_lookback_days":null,"explanation":"The MO deadline depends on the facts of the project (varies) and is not calculated; set deadline_date yourself.","source":null,"verified":false},"claim_amount":"99055.43","original_claim_amount":null,"description":"Et et modi ipsum nostrum.","is_amendment":false,"parent_notice_id":null,"amendment_reason":null,"amendment_reason_label":null,"amendment_sequence":1,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"e254bdbd-54dd-4d5b-9c8a-eb1e7ddd22e5"},"notice_number":{"type":"string","example":"N-251104-X9H001"},"project_id":{"type":"string","example":"3de0cff4-44c5-4bd3-8a21-230c362f28a1"},"organization_id":{"type":"string","example":"e354c530-1cf6-445e-9bd4-3b1e4ddb5e59"},"division_id":{"type":"string","example":"00ecc154-47cf-4f38-b957-c99063163eb9"},"type":{"type":"string","example":"preliminary"},"type_label":{"type":"string","example":"Preliminary Notice"},"status":{"type":"string","example":"draft"},"status_label":{"type":"string","example":"Draft"},"state":{"type":"string","example":"MO"},"notice_date":{"type":"string","example":"2025-11-04"},"deadline_date":{"type":"string","example":"2027-02-03"},"deadline_source":{"type":"string","example":null,"nullable":true},"first_furnishing_date":{"type":"string","example":"2025-12-20"},"last_furnishing_date":{"type":"string","example":"2026-09-20"},"deadline_rule":{"type":"object","properties":{"required":{"type":"boolean","example":true},"basis":{"type":"string","example":"varies"},"days":{"type":"string","example":null,"nullable":true},"deadline":{"type":"string","example":null,"nullable":true},"rolling_lookback_days":{"type":"string","example":null,"nullable":true},"explanation":{"type":"string","example":"The MO deadline depends on the facts of the project (varies) and is not calculated; set deadline_date yourself."},"source":{"type":"string","example":null,"nullable":true},"verified":{"type":"boolean","example":false}}},"claim_amount":{"type":"string","example":"99055.43"},"original_claim_amount":{"type":"string","example":null,"nullable":true},"description":{"type":"string","example":"Et et modi ipsum nostrum."},"is_amendment":{"type":"boolean","example":false},"parent_notice_id":{"type":"string","example":null,"nullable":true},"amendment_reason":{"type":"string","example":null,"nullable":true},"amendment_reason_label":{"type":"string","example":null,"nullable":true},"amendment_sequence":{"type":"integer","example":1},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Notices"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Target status. Reaching generated is not allowed here (generate the document instead).","example":"sent","enum":["draft","generated","sent","delivered","cancelled"]}},"required":["status"]}}}}},"parameters":[{"in":"path","name":"notice_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/notices/{notice_uuid}/order":{"post":{"summary":"Generate & mail a notice","operationId":"generateMailANotice","description":"Generates the notice PDF if needed, then creates an accountable USPS mail order for it. Reuses an existing PDF to avoid a second charge.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"ac2e04b3-1e15-4e30-9fd7-94dbd86a8b19","status":"pending","order_type":"mail","billing":{"status":"pending","method":"credit_balance","amount_cents":4175,"invoiced_at":null,"paid_at":null,"invoice_reference":null,"payment_reference":null},"tracking_number":null,"carrier":null,"mail_class":"priority","recipient":{"name":"Rowan Gulgowski","address_line_1":"4529 Tillman Ridges Suite 142","address_line_2":null,"city":"East Nickshire","state":"MO","zip":"33724"},"external_provider_id":null,"shipped_at":null,"delivered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"ac2e04b3-1e15-4e30-9fd7-94dbd86a8b19"},"status":{"type":"string","example":"pending"},"order_type":{"type":"string","example":"mail"},"billing":{"type":"object","properties":{"status":{"type":"string","example":"pending"},"method":{"type":"string","example":"credit_balance"},"amount_cents":{"type":"integer","example":4175},"invoiced_at":{"type":"string","example":null,"nullable":true},"paid_at":{"type":"string","example":null,"nullable":true},"invoice_reference":{"type":"string","example":null,"nullable":true},"payment_reference":{"type":"string","example":null,"nullable":true}}},"tracking_number":{"type":"string","example":null,"nullable":true},"carrier":{"type":"string","example":null,"nullable":true},"mail_class":{"type":"string","example":"priority"},"recipient":{"type":"object","properties":{"name":{"type":"string","example":"Rowan Gulgowski"},"address_line_1":{"type":"string","example":"4529 Tillman Ridges Suite 142"},"address_line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"East Nickshire"},"state":{"type":"string","example":"MO"},"zip":{"type":"string","example":"33724"}}},"external_provider_id":{"type":"string","example":null,"nullable":true},"shipped_at":{"type":"string","example":null,"nullable":true},"delivered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Notices"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"billing_method":{"type":"string","description":"How the order is paid for: prepay (debit credits now), invoice (bill later), or credit_balance.","example":"credit_balance","enum":["prepay","invoice","credit_balance"],"nullable":true},"amount_cents":{"type":"integer","description":"Optional caller-declared amount in cents. The authoritative price is still computed server-side. Must be at least 0.","example":27,"nullable":true},"mail_class":{"type":"string","description":"USPS mail class for the parcel.","example":"certified","enum":["first_class","certified","priority"],"nullable":true},"recipient_name":{"type":"string","description":"Name of the party the document is mailed to. Must not be greater than 255 characters.","example":"Property Owner LLC"},"recipient_address_line_1":{"type":"string","description":"Recipient street address, line 1. Must not be greater than 255 characters.","example":"200 Main Street"},"recipient_address_line_2":{"type":"string","description":"Recipient street address, line 2. Must not be greater than 255 characters.","example":"n","nullable":true},"recipient_city":{"type":"string","description":"Recipient city. Must not be greater than 255 characters.","example":"Austin"},"recipient_state":{"type":"string","description":"Recipient two-letter US state code. Must be 2 characters.","example":"TX"},"recipient_zip":{"type":"string","description":"Recipient postal code. Must not be greater than 10 characters.","example":"78702"},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["recipient_name","recipient_address_line_1","recipient_city","recipient_state","recipient_zip"]}}}}},"parameters":[{"in":"path","name":"notice_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/organizations":{"get":{"summary":"List organizations","operationId":"listOrganizations","description":"Paginated organizations visible to the caller, newest first.","parameters":[{"in":"query","name":"type","description":"Filter by type.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by type.","example":"architecto"}},{"in":"query","name":"role","description":"Filter by your relationship: owner or contact.","example":"owner","required":true,"schema":{"type":"string","description":"Filter by your relationship: owner or contact.","example":"owner"}},{"in":"query","name":"search","description":"Case-insensitive partial match on name.","example":"architecto","required":true,"schema":{"type":"string","description":"Case-insensitive partial match on name.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"0dc8cc85-76ab-4463-bee6-f1385cd01bdb","name":"Bailey Ltd","type":"general-contractor","license_number":null,"ein":"31-2965625","phone":null,"email":"idickens@runte.com","address":{"line_1":"16748 Lyric Loop","line_2":null,"city":"New Theoburgh","state":"LA","zip":"19279","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bd17fbb9-45cb-4691-85b1-d72331c439dd","name":"Leuschke, Bauch and Fritsch","type":"sub-contractor","license_number":null,"ein":"79-0915066","phone":null,"email":null,"address":{"line_1":"5161 Vesta Coves Apt. 809","line_2":null,"city":"Haagborough","state":"MT","zip":"36080-0782","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"0dc8cc85-76ab-4463-bee6-f1385cd01bdb","name":"Bailey Ltd","type":"general-contractor","license_number":null,"ein":"31-2965625","phone":null,"email":"idickens@runte.com","address":{"line_1":"16748 Lyric Loop","line_2":null,"city":"New Theoburgh","state":"LA","zip":"19279","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bd17fbb9-45cb-4691-85b1-d72331c439dd","name":"Leuschke, Bauch and Fritsch","type":"sub-contractor","license_number":null,"ein":"79-0915066","phone":null,"email":null,"address":{"line_1":"5161 Vesta Coves Apt. 809","line_2":null,"city":"Haagborough","state":"MT","zip":"36080-0782","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"0dc8cc85-76ab-4463-bee6-f1385cd01bdb"},"name":{"type":"string","example":"Bailey Ltd"},"type":{"type":"string","example":"general-contractor"},"license_number":{"type":"string","example":null,"nullable":true},"ein":{"type":"string","example":"31-2965625"},"phone":{"type":"string","example":null,"nullable":true},"email":{"type":"string","example":"idickens@runte.com"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"16748 Lyric Loop"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"New Theoburgh"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":null,"nullable":true},"country_code":{"type":"string","example":"US"}}},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Organizations"]},"post":{"summary":"Create a organization","operationId":"createAOrganization","description":"Creates a organization and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"afbc6bfb-9510-4f28-b957-904a19acac55","name":"Bailey Ltd","type":"general-contractor","license_number":null,"ein":"31-2965625","phone":null,"email":"idickens@runte.com","address":{"line_1":"16748 Lyric Loop","line_2":null,"city":"New Theoburgh","state":"LA","zip":"19279","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"afbc6bfb-9510-4f28-b957-904a19acac55"},"name":{"type":"string","example":"Bailey Ltd"},"type":{"type":"string","example":"general-contractor"},"license_number":{"type":"string","example":null,"nullable":true},"ein":{"type":"string","example":"31-2965625"},"phone":{"type":"string","example":null,"nullable":true},"email":{"type":"string","example":"idickens@runte.com"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"16748 Lyric Loop"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"New Theoburgh"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":null,"nullable":true},"country_code":{"type":"string","example":"US"}}},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Organizations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Organization legal name. Must not be greater than 255 characters.","example":"Acme Construction Co"},"type":{"type":"string","description":"Organization type in the CLS vocabulary.","example":"general_contractor","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to"]},"license_number":{"type":"string","description":"Contractor license number. Must not be greater than 255 characters.","example":"LIC-558231","nullable":true},"ein":{"type":"string","description":"Employer identification number. Must not be greater than 255 characters.","example":"12-3456789","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 255 characters.","example":"512-555-0100","nullable":true},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd","nullable":true},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"b","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin","nullable":true},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA","nullable":true},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701","nullable":true},"zip_plus_4":{"type":"string","description":"Optional 4-digit ZIP+4 extension. Must not be greater than 4 characters.","example":"1234","nullable":true},"country_code":{"type":"string","description":"Two-letter ISO country code. Defaults to US. Must be 2 characters.","example":"US","nullable":true},"cls_reference_id":{"type":"string","description":"Optional external reference id carried through to CLS. Must not be greater than 255 characters.","example":"CLS-10842","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true},"role":{"type":"string","description":"Whether this org is your own tenant (owner) or a directory-only counterparty (contact). Defaults to owner.","example":"owner","enum":["owner","contact"],"nullable":true}},"required":["name","type"]}}}}}},"/api/v1/organizations/{uuid}":{"get":{"summary":"Retrieve a organization","operationId":"retrieveAOrganization","description":"Returns a single organization by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"a778a857-8700-44fa-a75c-67bde426960b","name":"Price Ltd","type":"general-contractor","license_number":null,"ein":"59-0214902","phone":null,"email":null,"address":{"line_1":"427 Predovic Ridge","line_2":null,"city":"Baileemouth","state":"KS","zip":"32375-9947","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"a778a857-8700-44fa-a75c-67bde426960b"},"name":{"type":"string","example":"Price Ltd"},"type":{"type":"string","example":"general-contractor"},"license_number":{"type":"string","example":null,"nullable":true},"ein":{"type":"string","example":"59-0214902"},"phone":{"type":"string","example":null,"nullable":true},"email":{"type":"string","example":null,"nullable":true},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"427 Predovic Ridge"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Baileemouth"},"state":{"type":"string","example":"KS"},"zip":{"type":"string","example":"32375-9947"},"zip_plus_4":{"type":"string","example":null,"nullable":true},"country_code":{"type":"string","example":"US"}}},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Organizations"]},"put":{"summary":"Update a organization","operationId":"updateAOrganization","description":"Applies a partial update to a organization and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"4953b899-dc92-40e4-bd9d-bb8a9ccac222","name":"Bailey Ltd","type":"general-contractor","license_number":null,"ein":"31-2965625","phone":null,"email":"idickens@runte.com","address":{"line_1":"16748 Lyric Loop","line_2":null,"city":"New Theoburgh","state":"LA","zip":"19279","zip_plus_4":null,"country_code":"US"},"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"4953b899-dc92-40e4-bd9d-bb8a9ccac222"},"name":{"type":"string","example":"Bailey Ltd"},"type":{"type":"string","example":"general-contractor"},"license_number":{"type":"string","example":null,"nullable":true},"ein":{"type":"string","example":"31-2965625"},"phone":{"type":"string","example":null,"nullable":true},"email":{"type":"string","example":"idickens@runte.com"},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"16748 Lyric Loop"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"New Theoburgh"},"state":{"type":"string","example":"LA"},"zip":{"type":"string","example":"19279"},"zip_plus_4":{"type":"string","example":null,"nullable":true},"country_code":{"type":"string","example":"US"}}},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Organizations"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Organization legal name. Must not be greater than 255 characters.","example":"Acme Construction Co"},"type":{"type":"string","description":"Organization type in the CLS vocabulary.","example":"general_contractor","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to"]},"license_number":{"type":"string","description":"Contractor license number. Must not be greater than 255 characters.","example":"LIC-558231","nullable":true},"ein":{"type":"string","description":"Employer identification number. Must not be greater than 255 characters.","example":"12-3456789","nullable":true},"phone":{"type":"string","description":"Contact phone number. Must not be greater than 255 characters.","example":"512-555-0100","nullable":true},"email":{"type":"string","description":"Contact email address. Must be a valid email address. Must not be greater than 255 characters.","example":"ops@example.com","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd","nullable":true},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"b","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin","nullable":true},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA","nullable":true},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701","nullable":true},"zip_plus_4":{"type":"string","description":"Optional 4-digit ZIP+4 extension. Must not be greater than 4 characters.","example":"1234","nullable":true},"country_code":{"type":"string","description":"Two-letter ISO country code. Defaults to US. Must be 2 characters.","example":"US","nullable":true},"cls_reference_id":{"type":"string","description":"Optional external reference id carried through to CLS. Must not be greater than 255 characters.","example":"CLS-10842","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a organization","operationId":"deleteAOrganization","description":"Soft-deletes the organization.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Organization deleted."},"properties":{"message":{"type":"string","example":"Organization deleted."}}}}}}},"tags":["Organizations"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/parties":{"get":{"summary":"List partys","operationId":"listPartys","description":"Paginated partys visible to the caller, newest first.","parameters":[{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"role","description":"Filter by party role (CLS vocabulary).","example":"general_contractor","required":true,"schema":{"type":"string","description":"Filter by party role (CLS vocabulary).","example":"general_contractor"}},{"in":"query","name":"is_active","description":"Filter by active state.","example":true,"required":true,"schema":{"type":"boolean","description":"Filter by active state.","example":true}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"1aa54411-f745-4581-a543-f249e4354ce1","project_id":"2628312c-b356-41be-99ab-c1540374b2b5","organization_id":"a1c43657-6c86-42d7-ab95-e0808490127c","division_id":null,"is_claimant":false,"contact_id":null,"role":"owner-on-title","tier":"sub","license_number":"LIC-024635","contract_amount":"1485225.30","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"44f08e8a-e117-4440-94ea-955aa3579d28","project_id":"593edcd7-a5ed-4a88-91d0-0e6663bade44","organization_id":"c2b1d8a0-36f4-4bc6-9ed5-633276e3242f","division_id":null,"is_claimant":false,"contact_id":null,"role":"owner-on-title","tier":"prime","license_number":"LIC-693053","contract_amount":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"1aa54411-f745-4581-a543-f249e4354ce1","project_id":"2628312c-b356-41be-99ab-c1540374b2b5","organization_id":"a1c43657-6c86-42d7-ab95-e0808490127c","division_id":null,"is_claimant":false,"contact_id":null,"role":"owner-on-title","tier":"sub","license_number":"LIC-024635","contract_amount":"1485225.30","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"44f08e8a-e117-4440-94ea-955aa3579d28","project_id":"593edcd7-a5ed-4a88-91d0-0e6663bade44","organization_id":"c2b1d8a0-36f4-4bc6-9ed5-633276e3242f","division_id":null,"is_claimant":false,"contact_id":null,"role":"owner-on-title","tier":"prime","license_number":"LIC-693053","contract_amount":null,"is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"1aa54411-f745-4581-a543-f249e4354ce1"},"project_id":{"type":"string","example":"2628312c-b356-41be-99ab-c1540374b2b5"},"organization_id":{"type":"string","example":"a1c43657-6c86-42d7-ab95-e0808490127c"},"division_id":{"type":"string","example":null,"nullable":true},"is_claimant":{"type":"boolean","example":false},"contact_id":{"type":"string","example":null,"nullable":true},"role":{"type":"string","example":"owner-on-title"},"tier":{"type":"string","example":"sub"},"license_number":{"type":"string","example":"LIC-024635"},"contract_amount":{"type":"string","example":"1485225.30"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Parties"]},"post":{"summary":"Create a party","operationId":"createAParty","description":"Creates a party and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"d2646e28-fae3-4538-8496-cb00dbdf2bc1","project_id":"8e41f863-5b9d-4068-96f0-b5961519ac38","organization_id":"35542e78-b04e-4676-ab38-3744249e8a31","division_id":null,"is_claimant":false,"contact_id":null,"role":"general-contractor","tier":null,"license_number":"LIC-589365","contract_amount":"456205.34","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"d2646e28-fae3-4538-8496-cb00dbdf2bc1"},"project_id":{"type":"string","example":"8e41f863-5b9d-4068-96f0-b5961519ac38"},"organization_id":{"type":"string","example":"35542e78-b04e-4676-ab38-3744249e8a31"},"division_id":{"type":"string","example":null,"nullable":true},"is_claimant":{"type":"boolean","example":false},"contact_id":{"type":"string","example":null,"nullable":true},"role":{"type":"string","example":"general-contractor"},"tier":{"type":"string","example":null,"nullable":true},"license_number":{"type":"string","example":"LIC-589365"},"contract_amount":{"type":"string","example":"456205.34"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Parties"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"contact_id":{"type":"string","description":"Optional UUID of a contact to associate with this party. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"role":{"type":"string","description":"Party role in the CLS vocabulary (property_owner, general_contractor, subcontractor, ...).","example":"general_contractor","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to"]},"tier":{"type":"string","description":"Contracting tier: prime, sub, or sub-sub.","example":"prime","enum":["prime","sub","sub-sub"],"nullable":true},"license_number":{"type":"string","description":"Party contractor license number. Must not be greater than 255 characters.","example":"LIC-119284","nullable":true},"contract_amount":{"type":"number","description":"Party contract value, in dollars. Must be at least 0.","example":250000,"nullable":true},"is_active":{"type":"boolean","description":"Whether the record is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["project_id","organization_id","role"]}}}}}},"/api/v1/parties/{uuid}":{"get":{"summary":"Retrieve a party","operationId":"retrieveAParty","description":"Returns a single party by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"d1c6aa90-619f-4fc3-b83f-55dd08023323","project_id":"911f6a43-48c7-4e2e-9f78-2bf33fd30e51","organization_id":"2c65f467-0ca5-46b4-8e17-7f1e6d3d5091","division_id":null,"is_claimant":false,"contact_id":null,"role":"general-contractor","tier":"sub-sub","license_number":"LIC-031881","contract_amount":"1483598.02","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"d1c6aa90-619f-4fc3-b83f-55dd08023323"},"project_id":{"type":"string","example":"911f6a43-48c7-4e2e-9f78-2bf33fd30e51"},"organization_id":{"type":"string","example":"2c65f467-0ca5-46b4-8e17-7f1e6d3d5091"},"division_id":{"type":"string","example":null,"nullable":true},"is_claimant":{"type":"boolean","example":false},"contact_id":{"type":"string","example":null,"nullable":true},"role":{"type":"string","example":"general-contractor"},"tier":{"type":"string","example":"sub-sub"},"license_number":{"type":"string","example":"LIC-031881"},"contract_amount":{"type":"string","example":"1483598.02"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Parties"]},"put":{"summary":"Update a party","operationId":"updateAParty","description":"Partial update. The is_claimant party rejects role / is_active changes (422).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"c55152d3-a81e-4d30-a3db-0b4c72975eb2","project_id":"5d916c3a-44a4-46d0-957f-781e1e93ec7c","organization_id":"e475924f-595c-430b-b14d-74894993c4ac","division_id":null,"is_claimant":false,"contact_id":null,"role":"general-contractor","tier":null,"license_number":"LIC-589365","contract_amount":"456205.34","is_active":true,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"c55152d3-a81e-4d30-a3db-0b4c72975eb2"},"project_id":{"type":"string","example":"5d916c3a-44a4-46d0-957f-781e1e93ec7c"},"organization_id":{"type":"string","example":"e475924f-595c-430b-b14d-74894993c4ac"},"division_id":{"type":"string","example":null,"nullable":true},"is_claimant":{"type":"boolean","example":false},"contact_id":{"type":"string","example":null,"nullable":true},"role":{"type":"string","example":"general-contractor"},"tier":{"type":"string","example":null,"nullable":true},"license_number":{"type":"string","example":"LIC-589365"},"contract_amount":{"type":"string","example":"456205.34"},"is_active":{"type":"boolean","example":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Parties"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"contact_id":{"type":"string","description":"Optional UUID of a contact to associate with this party. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"role":{"type":"string","description":"Party role in the CLS vocabulary. Cannot be changed on the system-managed is_claimant party.","example":"general_contractor","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to"]},"tier":{"type":"string","description":"Contracting tier: prime, sub, or sub-sub.","example":"prime","enum":["prime","sub","sub-sub"],"nullable":true},"license_number":{"type":"string","description":"Party contractor license number. Must not be greater than 255 characters.","example":"LIC-119284","nullable":true},"contract_amount":{"type":"number","description":"Party contract value, in dollars. Must be at least 0.","example":250000,"nullable":true},"is_active":{"type":"boolean","description":"Whether the party is active. Cannot be changed on the system-managed is_claimant party.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a party","operationId":"deleteAParty","description":"Deletes the party. The system-managed is_claimant party cannot be deleted (422).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Party deleted."},"properties":{"message":{"type":"string","example":"Party deleted."}}}}}}},"tags":["Parties"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/pay-applications":{"get":{"summary":"List pay applications","operationId":"listPayApplications","description":"Paginated G702/G703 pay applications visible to the caller.","parameters":[{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"2a852107-b50d-44a0-bfcc-f76bff555a2e","application_number":17,"period_from":"1996-07-19","period_to":"2020-02-16","total_contract_amount":"4977103.93","previous_billed_amount":"607748.02","current_billing_amount":"949513.30","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"1557261.32","balance_to_finish":"3419842.61","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bf7b998b-db2c-4c37-abb0-f8385f993972","application_number":43,"period_from":"2009-02-16","period_to":"1990-04-07","total_contract_amount":"1077361.99","previous_billed_amount":"120550.69","current_billing_amount":"53163.61","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"173714.30","balance_to_finish":"903647.69","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"2a852107-b50d-44a0-bfcc-f76bff555a2e","application_number":17,"period_from":"1996-07-19","period_to":"2020-02-16","total_contract_amount":"4977103.93","previous_billed_amount":"607748.02","current_billing_amount":"949513.30","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"1557261.32","balance_to_finish":"3419842.61","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"bf7b998b-db2c-4c37-abb0-f8385f993972","application_number":43,"period_from":"2009-02-16","period_to":"1990-04-07","total_contract_amount":"1077361.99","previous_billed_amount":"120550.69","current_billing_amount":"53163.61","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"173714.30","balance_to_finish":"903647.69","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"2a852107-b50d-44a0-bfcc-f76bff555a2e"},"application_number":{"type":"integer","example":17},"period_from":{"type":"string","example":"1996-07-19"},"period_to":{"type":"string","example":"2020-02-16"},"total_contract_amount":{"type":"string","example":"4977103.93"},"previous_billed_amount":{"type":"string","example":"607748.02"},"current_billing_amount":{"type":"string","example":"949513.30"},"retainage_percent":{"type":"string","example":"0.00"},"retainage_amount":{"type":"string","example":"0.00"},"total_completed_to_date":{"type":"string","example":"1557261.32"},"balance_to_finish":{"type":"string","example":"3419842.61"},"status":{"type":"string","example":"draft"},"sov_line_items":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Pay Applications"]},"post":{"summary":"Create a pay application","operationId":"createAPayApplication","description":"Creates a pay application, optionally with inline SOV line items and participants.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"39e9ede3-7c2d-4807-a505-fed07903e7bb","application_number":16,"period_from":"1972-10-24","period_to":"1996-07-19","total_contract_amount":"1976890.61","previous_billed_amount":"983826.63","current_billing_amount":"145593.19","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"1129419.82","balance_to_finish":"847470.79","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"39e9ede3-7c2d-4807-a505-fed07903e7bb"},"application_number":{"type":"integer","example":16},"period_from":{"type":"string","example":"1972-10-24"},"period_to":{"type":"string","example":"1996-07-19"},"total_contract_amount":{"type":"string","example":"1976890.61"},"previous_billed_amount":{"type":"string","example":"983826.63"},"current_billing_amount":{"type":"string","example":"145593.19"},"retainage_percent":{"type":"string","example":"0.00"},"retainage_amount":{"type":"string","example":"0.00"},"total_completed_to_date":{"type":"string","example":"1129419.82"},"balance_to_finish":{"type":"string","example":"847470.79"},"status":{"type":"string","example":"draft"},"sov_line_items":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Pay Applications"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"division_id":{"type":"string","description":"UUID of the claimant division. Optional: inherited from the project. Supplying a division other than the project one is rejected (422). Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"application_number":{"type":"integer","description":"Sequential pay application number for the project. Must be at least 1.","example":3},"period_from":{"type":"string","description":"Start of the billing period (YYYY-MM-DD). Must be a valid date.","example":"2026-05-01"},"period_to":{"type":"string","description":"End of the billing period; on or after period_from. Must be a valid date. Must be a date after or equal to <code>period_from</code>.","example":"2026-05-31"},"total_contract_amount":{"type":"number","description":"Total contract value to date, in dollars. Must be at least 0.","example":600000},"current_billing_amount":{"type":"number","description":"Amount billed this period, in dollars. Must be at least 0.","example":75000},"previous_billed_amount":{"type":"number","description":"Amount billed in prior periods, in dollars. Must be at least 0.","example":0,"nullable":true},"retainage_percent":{"type":"number","description":"Retainage withheld, as a percent (0 to 100). Must be at least 0. Must not be greater than 100.","example":10,"nullable":true},"sov_line_items":{"type":"array","description":"Inline schedule-of-values rows (alternative to a stored SOV). Must not have more than 1000 items.","example":null,"items":{"type":"object","nullable":true,"properties":{"description":{"type":"string","description":"Line item description. This field is required when <code>sov_line_items</code> is present. Must not be greater than 10000 characters.","example":"Concrete - foundations"},"scheduled_value":{"type":"number","description":"Scheduled value for the line, in dollars. This field is required when <code>sov_line_items</code> is present.","example":50000},"previous":{"type":"number","description":"Value completed in prior periods, in dollars.","example":0,"nullable":true},"this_period":{"type":"number","description":"Value completed this period, in dollars.","example":12000,"nullable":true}}}},"cls_reference_id":{"type":"string","description":"Optional external reference id carried through to CLS. Must not be greater than 255 characters.","example":"CLS-10842","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true},"participants":{"type":"array","description":"Organizations to attach to this pay application, with their role. Must not have more than 50 items.","example":null,"items":{"type":"object","nullable":true,"properties":{"organization_id":{"type":"string","description":"UUID of a participating organization. This field is required when <code>participants</code> is present. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"role":{"type":"string","description":"Participant role: sender, receiver, or reviewer. This field is required when <code>participants</code> is present.","example":"receiver","enum":["sender","receiver","reviewer"]}}}}},"required":["project_id","application_number","period_from","period_to","total_contract_amount","current_billing_amount"]}}}}}},"/api/v1/pay-applications/{uuid}":{"get":{"summary":"Retrieve a pay application","operationId":"retrieveAPayApplication","description":"Returns a single pay application by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"58924756-bc0d-466a-8f5b-d07039fb7afe","application_number":33,"period_from":"2010-03-28","period_to":"2022-06-24","total_contract_amount":"109752.23","previous_billed_amount":"53431.06","current_billing_amount":"12714.35","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"66145.41","balance_to_finish":"43606.82","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"58924756-bc0d-466a-8f5b-d07039fb7afe"},"application_number":{"type":"integer","example":33},"period_from":{"type":"string","example":"2010-03-28"},"period_to":{"type":"string","example":"2022-06-24"},"total_contract_amount":{"type":"string","example":"109752.23"},"previous_billed_amount":{"type":"string","example":"53431.06"},"current_billing_amount":{"type":"string","example":"12714.35"},"retainage_percent":{"type":"string","example":"0.00"},"retainage_amount":{"type":"string","example":"0.00"},"total_completed_to_date":{"type":"string","example":"66145.41"},"balance_to_finish":{"type":"string","example":"43606.82"},"status":{"type":"string","example":"draft"},"sov_line_items":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Pay Applications"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/pay-applications/{pay_application_uuid}/transition":{"post":{"summary":"Transition a pay application","operationId":"transitionAPayApplication","description":"Moves the pay application to submitted, under_review, approved or rejected.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"ba61bf5d-51a2-450d-86f0-e1ef6a6cbbff","application_number":33,"period_from":"2010-03-28","period_to":"2022-06-24","total_contract_amount":"109752.23","previous_billed_amount":"53431.06","current_billing_amount":"12714.35","retainage_percent":"0.00","retainage_amount":"0.00","total_completed_to_date":"66145.41","balance_to_finish":"43606.82","status":"draft","sov_line_items":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"ba61bf5d-51a2-450d-86f0-e1ef6a6cbbff"},"application_number":{"type":"integer","example":33},"period_from":{"type":"string","example":"2010-03-28"},"period_to":{"type":"string","example":"2022-06-24"},"total_contract_amount":{"type":"string","example":"109752.23"},"previous_billed_amount":{"type":"string","example":"53431.06"},"current_billing_amount":{"type":"string","example":"12714.35"},"retainage_percent":{"type":"string","example":"0.00"},"retainage_amount":{"type":"string","example":"0.00"},"total_completed_to_date":{"type":"string","example":"66145.41"},"balance_to_finish":{"type":"string","example":"43606.82"},"status":{"type":"string","example":"draft"},"sov_line_items":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Pay Applications"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Target status: submitted, under_review, approved, or rejected.","example":"submitted","enum":["submitted","under_review","approved","rejected"]}},"required":["status"]}}}}},"parameters":[{"in":"path","name":"pay_application_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/projects":{"get":{"summary":"List projects","operationId":"listProjects","description":"Paginated projects visible to the caller, newest first.","parameters":[{"in":"query","name":"state","description":"Filter by two-letter US state code.","example":"CA","required":true,"schema":{"type":"string","description":"Filter by two-letter US state code.","example":"CA"}},{"in":"query","name":"search","description":"Case-insensitive partial match on name and project number.","example":"architecto","required":true,"schema":{"type":"string","description":"Case-insensitive partial match on name and project number.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"977f512d-f0d1-4407-b25a-33adef1921b4","name":"eius et animi Project","division_id":"c9af0603-2c74-4a4f-93d7-bccf0331169d","project_number":"PRJ-26316","description":null,"address":{"line_1":"40575 Dickens Inlet","line_2":null,"city":"Myaport","state":"CT","zip":"08182","county":null},"project_type":null,"contract_amount":"177784.58","date_contract":"1981-06-04","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"a1b39ffb-a611-4c0c-bc79-07d8364a71a1","name":"repellendus assumenda et Project","division_id":"41a84ca3-8481-4ccf-912f-b0bc0ea46bc6","project_number":"PRJ-82438","description":"Quia perspiciatis deserunt ducimus corrupti et.","address":{"line_1":"93199 Walker Avenue","line_2":null,"city":"Kreigerburgh","state":"FL","zip":"96823","county":"ut"},"project_type":null,"contract_amount":"305560.48","date_contract":"1996-08-19","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"977f512d-f0d1-4407-b25a-33adef1921b4","name":"eius et animi Project","division_id":"c9af0603-2c74-4a4f-93d7-bccf0331169d","project_number":"PRJ-26316","description":null,"address":{"line_1":"40575 Dickens Inlet","line_2":null,"city":"Myaport","state":"CT","zip":"08182","county":null},"project_type":null,"contract_amount":"177784.58","date_contract":"1981-06-04","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"a1b39ffb-a611-4c0c-bc79-07d8364a71a1","name":"repellendus assumenda et Project","division_id":"41a84ca3-8481-4ccf-912f-b0bc0ea46bc6","project_number":"PRJ-82438","description":"Quia perspiciatis deserunt ducimus corrupti et.","address":{"line_1":"93199 Walker Avenue","line_2":null,"city":"Kreigerburgh","state":"FL","zip":"96823","county":"ut"},"project_type":null,"contract_amount":"305560.48","date_contract":"1996-08-19","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"977f512d-f0d1-4407-b25a-33adef1921b4"},"name":{"type":"string","example":"eius et animi Project"},"division_id":{"type":"string","example":"c9af0603-2c74-4a4f-93d7-bccf0331169d"},"project_number":{"type":"string","example":"PRJ-26316"},"description":{"type":"string","example":null,"nullable":true},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"40575 Dickens Inlet"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Myaport"},"state":{"type":"string","example":"CT"},"zip":{"type":"string","example":"08182"},"county":{"type":"string","example":null,"nullable":true}}},"project_type":{"type":"string","example":null,"nullable":true},"contract_amount":{"type":"string","example":"177784.58"},"date_contract":{"type":"string","example":"1981-06-04"},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Projects"]},"post":{"summary":"Create a project","operationId":"createAProject","description":"Creates a project and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"a6965421-92a8-4b3e-ae7e-1f53728d1882","name":"sunt nihil accusantium Project","division_id":"d385fff3-210c-428c-b62c-1c4f7adfb4cb","project_number":"PRJ-80841","description":null,"address":{"line_1":"78142 Nick Field","line_2":null,"city":"West Noahmouth","state":"WV","zip":"59021-4902","county":null},"project_type":null,"contract_amount":"655842.27","date_contract":"1977-08-15","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"a6965421-92a8-4b3e-ae7e-1f53728d1882"},"name":{"type":"string","example":"sunt nihil accusantium Project"},"division_id":{"type":"string","example":"d385fff3-210c-428c-b62c-1c4f7adfb4cb"},"project_number":{"type":"string","example":"PRJ-80841"},"description":{"type":"string","example":null,"nullable":true},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"78142 Nick Field"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"West Noahmouth"},"state":{"type":"string","example":"WV"},"zip":{"type":"string","example":"59021-4902"},"county":{"type":"string","example":null,"nullable":true}}},"project_type":{"type":"string","example":null,"nullable":true},"contract_amount":{"type":"string","example":"655842.27"},"date_contract":{"type":"string","example":"1977-08-15"},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Projects"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Must not be greater than 255 characters.","example":"Riverside Medical Center"},"division_id":{"type":"string","description":"UUID of the claimant division for this project. Required. Also materialised as the system-managed is_claimant party. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"claimant_role":{"type":"string","description":"The claimant role on the project (CLS vocabulary), e.g. general_contractor or subcontractor.","example":"general_contractor","enum":["general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier"]},"date_contract":{"type":"string","description":"Prime/sub contract date (YYYY-MM-DD). Required later for G702 generation. Must be a valid date.","example":"2026-02-01","nullable":true},"project_number":{"type":"string","description":"Your internal project number. Must not be greater than 255 characters.","example":"PRJ-1042","nullable":true},"description":{"type":"string","description":"Optional project description. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd","nullable":true},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"v","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin","nullable":true},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA","nullable":true},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701","nullable":true},"county":{"type":"string","description":"County name. Must not be greater than 255 characters.","example":"Travis","nullable":true},"project_type":{"type":"string","description":"CLS project type (fmp-diy vocabulary). Public-work types (gov-*, tribal) look for bond information on notices; private types look for a construction lender.","example":"com-new-build","enum":["com-new-build","com-tenant-improvement","com-apartments","res-spec-home","res-tract-home","res-condos","res-owner-occupied","res-restoration","gov-state","gov-federal","gov-education-public","gov-education-private","tribal","unknown"],"nullable":true},"contract_amount":{"type":"number","description":"Project contract value, in dollars. Must be at least 0.","example":600000,"nullable":true},"cls_reference_id":{"type":"string","description":"Optional external reference id carried through to CLS. Must not be greater than 255 characters.","example":"CLS-10842","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true},"participants":{"type":"array","description":"Organizations to attach to the project, with their role. Must not have more than 50 items.","example":null,"items":{"type":"object","nullable":true,"properties":{"organization_id":{"type":"string","description":"UUID of a participating organization. This field is required when <code>participants</code> is present. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"role":{"type":"string","description":"Participant role (CLS role token, or claimant). This field is required when <code>participants</code> is present.","example":"property_owner","enum":["owner-on-title","owner-reputed-owner","reputed-owner","general-contractor","sub-contractor","2nd-tier-contractor","3rd-tier-contractor","material-supplier","equipment-supplier","labor-supplier","lender-beneficiary","surety-bond-company","architect","title-company","escrow-title-agency","developer","construction-manager","project-manager","owner-representative","project-owner","lessee","lessor","sub-lessee","home-owners-association","property-manager","trustee","insurance-agency","professional-services","copy-to","claimant"]}}}}},"required":["name","division_id","claimant_role"]}}}}}},"/api/v1/projects/{uuid}":{"get":{"summary":"Retrieve a project","operationId":"retrieveAProject","description":"Returns a single project by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"f4c690c6-9346-455b-a9f0-4e0e1fe4fbed","name":"aut adipisci quidem Project","division_id":"19381109-7056-436d-aa74-7af76e82a924","project_number":"PRJ-00432","description":null,"address":{"line_1":"38862 Ferne Locks Suite 058","line_2":null,"city":"Christianshire","state":"IA","zip":"97161","county":"tempora"},"project_type":null,"contract_amount":"3701357.66","date_contract":"1985-12-26","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"f4c690c6-9346-455b-a9f0-4e0e1fe4fbed"},"name":{"type":"string","example":"aut adipisci quidem Project"},"division_id":{"type":"string","example":"19381109-7056-436d-aa74-7af76e82a924"},"project_number":{"type":"string","example":"PRJ-00432"},"description":{"type":"string","example":null,"nullable":true},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"38862 Ferne Locks Suite 058"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"Christianshire"},"state":{"type":"string","example":"IA"},"zip":{"type":"string","example":"97161"},"county":{"type":"string","example":"tempora"}}},"project_type":{"type":"string","example":null,"nullable":true},"contract_amount":{"type":"string","example":"3701357.66"},"date_contract":{"type":"string","example":"1985-12-26"},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Projects"]},"put":{"summary":"Update a project","operationId":"updateAProject","description":"Applies a partial update to a project and returns it.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"21f6303b-59e0-4d7e-a0c8-4b55d56aaaa2","name":"sunt nihil accusantium Project","division_id":"3102faa9-72f6-4ac6-8bc6-c2ba06dcd69c","project_number":"PRJ-80841","description":null,"address":{"line_1":"78142 Nick Field","line_2":null,"city":"West Noahmouth","state":"WV","zip":"59021-4902","county":null},"project_type":null,"contract_amount":"655842.27","date_contract":"1977-08-15","cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"21f6303b-59e0-4d7e-a0c8-4b55d56aaaa2"},"name":{"type":"string","example":"sunt nihil accusantium Project"},"division_id":{"type":"string","example":"3102faa9-72f6-4ac6-8bc6-c2ba06dcd69c"},"project_number":{"type":"string","example":"PRJ-80841"},"description":{"type":"string","example":null,"nullable":true},"address":{"type":"object","properties":{"line_1":{"type":"string","example":"78142 Nick Field"},"line_2":{"type":"string","example":null,"nullable":true},"city":{"type":"string","example":"West Noahmouth"},"state":{"type":"string","example":"WV"},"zip":{"type":"string","example":"59021-4902"},"county":{"type":"string","example":null,"nullable":true}}},"project_type":{"type":"string","example":null,"nullable":true},"contract_amount":{"type":"string","example":"655842.27"},"date_contract":{"type":"string","example":"1977-08-15"},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["Projects"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Must not be greater than 255 characters.","example":"Riverside Medical Center"},"project_number":{"type":"string","description":"Your internal project number. Must not be greater than 255 characters.","example":"PRJ-1042","nullable":true},"description":{"type":"string","description":"Optional project description. Must not be greater than 10000 characters.","example":"Eius et animi quos velit et.","nullable":true},"address_line_1":{"type":"string","description":"Street address, line 1. Must not be greater than 255 characters.","example":"100 Commerce Blvd","nullable":true},"address_line_2":{"type":"string","description":"Street address, line 2 (suite, unit). Must not be greater than 255 characters.","example":"v","nullable":true},"city":{"type":"string","description":"City. Must not be greater than 255 characters.","example":"Austin","nullable":true},"state":{"type":"string","description":"Two-letter US state code. Must be 2 characters.","example":"CA","nullable":true},"zip":{"type":"string","description":"Postal code (5 or 9 digit). Must not be greater than 10 characters.","example":"78701","nullable":true},"county":{"type":"string","description":"County name. Must not be greater than 255 characters.","example":"Travis","nullable":true},"project_type":{"type":"string","description":"CLS project type (fmp-diy vocabulary). Public-work types (gov-*, tribal) look for bond information on notices; private types look for a construction lender.","example":"com-new-build","enum":["com-new-build","com-tenant-improvement","com-apartments","res-spec-home","res-tract-home","res-condos","res-owner-occupied","res-restoration","gov-state","gov-federal","gov-education-public","gov-education-private","tribal","unknown"],"nullable":true},"contract_amount":{"type":"number","description":"Project contract value, in dollars. Must be at least 0.","example":600000,"nullable":true},"date_contract":{"type":"string","description":"Prime/sub contract date (YYYY-MM-DD). Must be a valid date.","example":"2026-02-01","nullable":true},"cls_reference_id":{"type":"string","description":"Optional external reference id carried through to CLS. Must not be greater than 255 characters.","example":"CLS-10842","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a project","operationId":"deleteAProject","description":"Soft-deletes the project.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Project deleted."},"properties":{"message":{"type":"string","example":"Project deleted."}}}}}}},"tags":["Projects"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/provider-auth":{"get":{"summary":"List provider credentials","operationId":"listProviderCredentials","description":"Stored mail-provider credentials (secrets are never returned in full).","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"provider","description":"Filter by provider: lob, click2mail or stannp.","example":"lob","required":true,"schema":{"type":"string","description":"Filter by provider: lob, click2mail or stannp.","example":"lob"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"e2784395-8e31-406c-b14a-0eb4a9fc665a","provider":"lob","label":"adipisci quidem","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"b30d7f47-5ba2-4cf3-ba70-cb80ac87e885","provider":"stannp","label":"adipisci molestias","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"e2784395-8e31-406c-b14a-0eb4a9fc665a","provider":"lob","label":"adipisci quidem","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"b30d7f47-5ba2-4cf3-ba70-cb80ac87e885","provider":"stannp","label":"adipisci molestias","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"e2784395-8e31-406c-b14a-0eb4a9fc665a"},"provider":{"type":"string","example":"lob"},"label":{"type":"string","example":"adipisci quidem"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Provider Auth"]},"post":{"summary":"Store a provider credential","operationId":"storeAProviderCredential","description":"Saves an encrypted mail-provider API credential.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"346bd825-e8a8-4d80-8fbd-3951c940a0d2","provider":"lob","label":"et animi","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"346bd825-e8a8-4d80-8fbd-3951c940a0d2"},"provider":{"type":"string","example":"lob"},"label":{"type":"string","example":"et animi"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Provider Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"provider":{"type":"string","description":"Mail provider the credential is for.","example":"lob","enum":["lob","click2mail","stannp"]},"label":{"type":"string","description":"Optional friendly name for the credential. Must not be greater than 255 characters.","example":"Primary Lob key","nullable":true},"api_key":{"type":"string","description":"Provider API key. Stored encrypted; never returned in full. Must not be greater than 1000 characters.","example":"live_xxx"},"api_secret":{"type":"string","description":"Optional provider API secret. Must not be greater than 1000 characters.","example":"b","nullable":true},"environment":{"type":"string","description":"Provider environment the credential targets.","example":"production","enum":["sandbox","production"],"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["organization_id","provider","api_key"]}}}}}},"/api/v1/provider-auth/{uuid}":{"get":{"summary":"Retrieve a provider credential","operationId":"retrieveAProviderCredential","description":"Returns a single credential by UUID (secrets masked).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"78f35162-abc9-4db8-9c74-aab667972087","provider":"lob","label":"adipisci quidem","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"78f35162-abc9-4db8-9c74-aab667972087"},"provider":{"type":"string","example":"lob"},"label":{"type":"string","example":"adipisci quidem"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Provider Auth"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/sovs":{"get":{"summary":"List schedules of values","operationId":"listSchedulesOfValues","description":"Paginated SOVs visible to the caller.","parameters":[{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"pay_application_id","description":"Filter to this pay application (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this pay application (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"2f9db788-8407-4f13-969d-b56e3330acda","project_id":"2b3db26a-0028-4ff7-95ee-87c7a238d087","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"transform 24/365 networks","scheduled_value":26301.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"aggregate plug-and-play e-business","scheduled_value":73527.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"streamline best-of-breed communities","scheduled_value":42718.56,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"streamline virtual vortals","scheduled_value":35174.92,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"repurpose vertical convergence","scheduled_value":7452.43,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"implement intuitive e-tailers","scheduled_value":67892.93,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"253067.36","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"a2109301-0c33-47d2-86b0-44029ae59f6c","project_id":"87ecf023-fd7c-4640-9d2f-393ef47d5b50","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"repurpose transparent metrics","scheduled_value":95837.82,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"repurpose mission-critical portals","scheduled_value":77640.32,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"maximize frictionless e-services","scheduled_value":90813.2,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"envisioneer efficient infomediaries","scheduled_value":28549.11,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"mesh 24/7 e-commerce","scheduled_value":50319.38,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"synthesize web-enabled bandwidth","scheduled_value":94610.18,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"437770.01","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"2f9db788-8407-4f13-969d-b56e3330acda","project_id":"2b3db26a-0028-4ff7-95ee-87c7a238d087","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"transform 24/365 networks","scheduled_value":26301.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"aggregate plug-and-play e-business","scheduled_value":73527.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"streamline best-of-breed communities","scheduled_value":42718.56,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"streamline virtual vortals","scheduled_value":35174.92,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"repurpose vertical convergence","scheduled_value":7452.43,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"implement intuitive e-tailers","scheduled_value":67892.93,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"253067.36","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"},{"id":"a2109301-0c33-47d2-86b0-44029ae59f6c","project_id":"87ecf023-fd7c-4640-9d2f-393ef47d5b50","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"repurpose transparent metrics","scheduled_value":95837.82,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"repurpose mission-critical portals","scheduled_value":77640.32,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"maximize frictionless e-services","scheduled_value":90813.2,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"envisioneer efficient infomediaries","scheduled_value":28549.11,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"mesh 24/7 e-commerce","scheduled_value":50319.38,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"synthesize web-enabled bandwidth","scheduled_value":94610.18,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"437770.01","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"2f9db788-8407-4f13-969d-b56e3330acda"},"project_id":{"type":"string","example":"2b3db26a-0028-4ff7-95ee-87c7a238d087"},"pay_application_id":{"type":"string","example":null,"nullable":true},"name":{"type":"string","example":"Schedule of Values"},"line_items":{"type":"array","example":[{"item_number":1,"description":"transform 24/365 networks","scheduled_value":26301.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"aggregate plug-and-play e-business","scheduled_value":73527.26,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"streamline best-of-breed communities","scheduled_value":42718.56,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"streamline virtual vortals","scheduled_value":35174.92,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"repurpose vertical convergence","scheduled_value":7452.43,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"implement intuitive e-tailers","scheduled_value":67892.93,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"items":{"type":"object","properties":{"item_number":{"type":"integer","example":1},"description":{"type":"string","example":"transform 24/365 networks"},"scheduled_value":{"type":"number","example":26301.26},"work_completed_from_previous":{"type":"integer","example":0},"work_completed_this_period":{"type":"integer","example":0},"materials_presently_stored":{"type":"integer","example":0},"total_completed_and_stored":{"type":"integer","example":0},"percent_complete":{"type":"integer","example":0},"balance_to_finish":{"type":"integer","example":0},"retainage":{"type":"integer","example":0}}}},"total_contract_amount":{"type":"string","example":"253067.36"},"source":{"type":"string","example":"manual"},"status":{"type":"string","example":"active"},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["SOVs"]},"post":{"summary":"Create a schedule of values","operationId":"createAScheduleOfValues","description":"Creates an SOV with 1-1000 line items.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"cc12bbe1-8993-41b7-a010-de80b46ed922","project_id":"3c4cba61-5612-4532-938a-36a89908cf7a","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"exploit scalable supply-chains","scheduled_value":88168.27,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"optimize front-end e-tailers","scheduled_value":58195.4,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"orchestrate out-of-the-box web-readiness","scheduled_value":57528.21,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"seize sexy e-services","scheduled_value":92046.48,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"engineer compelling e-markets","scheduled_value":72985.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"aggregate granular synergies","scheduled_value":39857.96,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"408781.60","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"cc12bbe1-8993-41b7-a010-de80b46ed922"},"project_id":{"type":"string","example":"3c4cba61-5612-4532-938a-36a89908cf7a"},"pay_application_id":{"type":"string","example":null,"nullable":true},"name":{"type":"string","example":"Schedule of Values"},"line_items":{"type":"array","example":[{"item_number":1,"description":"exploit scalable supply-chains","scheduled_value":88168.27,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"optimize front-end e-tailers","scheduled_value":58195.4,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"orchestrate out-of-the-box web-readiness","scheduled_value":57528.21,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"seize sexy e-services","scheduled_value":92046.48,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"engineer compelling e-markets","scheduled_value":72985.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"aggregate granular synergies","scheduled_value":39857.96,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"items":{"type":"object","properties":{"item_number":{"type":"integer","example":1},"description":{"type":"string","example":"exploit scalable supply-chains"},"scheduled_value":{"type":"number","example":88168.27},"work_completed_from_previous":{"type":"integer","example":0},"work_completed_this_period":{"type":"integer","example":0},"materials_presently_stored":{"type":"integer","example":0},"total_completed_and_stored":{"type":"integer","example":0},"percent_complete":{"type":"integer","example":0},"balance_to_finish":{"type":"integer","example":0},"retainage":{"type":"integer","example":0}}}},"total_contract_amount":{"type":"string","example":"408781.60"},"source":{"type":"string","example":"manual"},"status":{"type":"string","example":"active"},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["SOVs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"pay_application_id":{"type":"string","description":"Optional UUID of a pay application to attach the SOV to. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"name":{"type":"string","description":"Optional label for the schedule of values. Must not be greater than 255 characters.","example":"Base contract SOV","nullable":true},"line_items":{"type":"array","description":"Schedule-of-values rows (1 to 1000). Must have at least 1 items. Must not have more than 1000 items.","example":[[]],"items":{"type":"object","properties":{"item_number":{"type":"string","description":"Row number / identifier.","example":"1"},"description":{"type":"string","description":"Line item description. Must not be greater than 10000 characters.","example":"Concrete - foundations"},"scheduled_value":{"type":"number","description":"Scheduled value for the line, in dollars. Must be at least 0.","example":50000}},"required":["item_number","description","scheduled_value"]}},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["project_id","line_items"]}}}}}},"/api/v1/sovs/{uuid}":{"get":{"summary":"Retrieve a schedule of values","operationId":"retrieveAScheduleOfValues","description":"Returns a single SOV by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"306fbe5a-0557-419b-9224-7bf03f528e6b","project_id":"ade9676a-9d68-4060-bf44-c559e8809f96","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"synergize next-generation vortals","scheduled_value":45413.38,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"reintermediate world-class webservices","scheduled_value":16627.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"enhance back-end content","scheduled_value":7616.01,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"69656.67","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"306fbe5a-0557-419b-9224-7bf03f528e6b"},"project_id":{"type":"string","example":"ade9676a-9d68-4060-bf44-c559e8809f96"},"pay_application_id":{"type":"string","example":null,"nullable":true},"name":{"type":"string","example":"Schedule of Values"},"line_items":{"type":"array","example":[{"item_number":1,"description":"synergize next-generation vortals","scheduled_value":45413.38,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"reintermediate world-class webservices","scheduled_value":16627.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"enhance back-end content","scheduled_value":7616.01,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"items":{"type":"object","properties":{"item_number":{"type":"integer","example":1},"description":{"type":"string","example":"synergize next-generation vortals"},"scheduled_value":{"type":"number","example":45413.38},"work_completed_from_previous":{"type":"integer","example":0},"work_completed_this_period":{"type":"integer","example":0},"materials_presently_stored":{"type":"integer","example":0},"total_completed_and_stored":{"type":"integer","example":0},"percent_complete":{"type":"integer","example":0},"balance_to_finish":{"type":"integer","example":0},"retainage":{"type":"integer","example":0}}}},"total_contract_amount":{"type":"string","example":"69656.67"},"source":{"type":"string","example":"manual"},"status":{"type":"string","example":"active"},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["SOVs"]},"delete":{"summary":"Delete a schedule of values","operationId":"deleteAScheduleOfValues","description":"Deletes the SOV.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"SOV deleted."},"properties":{"message":{"type":"string","example":"SOV deleted."}}}}}}},"tags":["SOVs"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/sovs/import-csv":{"post":{"summary":"Import an SOV from CSV","operationId":"importAnSOVFromCSV","description":"Creates an SOV from an uploaded CSV file (multipart/form-data).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"81a3f51c-25fa-4efb-8ac4-ddd48c0c6454","project_id":"89022d9c-8034-4920-afd1-4100ab470c37","pay_application_id":null,"name":"Schedule of Values","line_items":[{"item_number":1,"description":"exploit scalable supply-chains","scheduled_value":88168.27,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"optimize front-end e-tailers","scheduled_value":58195.4,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"orchestrate out-of-the-box web-readiness","scheduled_value":57528.21,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"seize sexy e-services","scheduled_value":92046.48,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"engineer compelling e-markets","scheduled_value":72985.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"aggregate granular synergies","scheduled_value":39857.96,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"total_contract_amount":"408781.60","source":"manual","status":"active","metadata":null,"created_at":"2026-10-05T15:49:19+00:00","updated_at":"2026-10-05T15:49:19+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"81a3f51c-25fa-4efb-8ac4-ddd48c0c6454"},"project_id":{"type":"string","example":"89022d9c-8034-4920-afd1-4100ab470c37"},"pay_application_id":{"type":"string","example":null,"nullable":true},"name":{"type":"string","example":"Schedule of Values"},"line_items":{"type":"array","example":[{"item_number":1,"description":"exploit scalable supply-chains","scheduled_value":88168.27,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":2,"description":"optimize front-end e-tailers","scheduled_value":58195.4,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":3,"description":"orchestrate out-of-the-box web-readiness","scheduled_value":57528.21,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":4,"description":"seize sexy e-services","scheduled_value":92046.48,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":5,"description":"engineer compelling e-markets","scheduled_value":72985.28,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0},{"item_number":6,"description":"aggregate granular synergies","scheduled_value":39857.96,"work_completed_from_previous":0,"work_completed_this_period":0,"materials_presently_stored":0,"total_completed_and_stored":0,"percent_complete":0,"balance_to_finish":0,"retainage":0}],"items":{"type":"object","properties":{"item_number":{"type":"integer","example":1},"description":{"type":"string","example":"exploit scalable supply-chains"},"scheduled_value":{"type":"number","example":88168.27},"work_completed_from_previous":{"type":"integer","example":0},"work_completed_this_period":{"type":"integer","example":0},"materials_presently_stored":{"type":"integer","example":0},"total_completed_and_stored":{"type":"integer","example":0},"percent_complete":{"type":"integer","example":0},"balance_to_finish":{"type":"integer","example":0},"retainage":{"type":"integer","example":0}}}},"total_contract_amount":{"type":"string","example":"408781.60"},"source":{"type":"string","example":"manual"},"status":{"type":"string","example":"active"},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:19+00:00"}}}}}}}}},"tags":["SOVs"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"project_id":{"type":"string","description":"UUID of the project. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"pay_application_id":{"type":"string","description":"Optional UUID of a pay application to attach the imported SOV to. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"name":{"type":"string","description":"Optional label for the imported schedule of values. Must not be greater than 255 characters.","example":"Imported SOV","nullable":true},"file":{"type":"string","format":"binary","description":"The CSV file (csv or txt, max 2 MB). Sent as multipart/form-data. Must be a file. Must not be greater than 2048 kilobytes."},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["project_id","file"]}}}}}},"/api/v1/sandbox":{"get":{"summary":"Get sandbox status","operationId":"getSandboxStatus","description":"Reports whether the current API key is in live or sandbox mode.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"mode":"sandbox","is_sandbox":true},"properties":{"mode":{"type":"string","example":"sandbox"},"is_sandbox":{"type":"boolean","example":true}}}}}}},"tags":["Sandbox"]}},"/api/v1/sandbox/reset":{"post":{"summary":"Reset sandbox data","operationId":"resetSandboxData","description":"Wipes all disposable sandbox records for the caller. Optionally reseeds demo data. Sandbox keys only.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Sandbox data reset.","reseeded":false},"properties":{"message":{"type":"string","example":"Sandbox data reset."},"reseeded":{"type":"boolean","example":false}}}}}}},"tags":["Sandbox"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"sample_data":{"type":"boolean","description":"When true, reseed a fresh set of demo records after wiping sandbox data.","example":true}}}}}}}},"/api/v1/search":{"get":{"summary":"Search across resources","operationId":"searchAcrossResources","description":"Case-insensitive partial-match search over organizations, projects and contacts the caller can see.","parameters":[{"in":"query","name":"q","description":"Search term (2-255 chars).","example":"riverside","required":true,"schema":{"type":"string","description":"Search term (2-255 chars).","example":"riverside"}},{"in":"query","name":"types","description":"Which resource types to search. Defaults to all.","example":["projects","contacts"],"required":false,"schema":{"type":"array","description":"Which resource types to search. Defaults to all.","example":["projects","contacts"],"items":{"type":"string"}}},{"in":"query","name":"per_type","description":"Max results per resource type (1-25). Default 5.","example":5,"required":false,"schema":{"type":"integer","description":"Max results per resource type (1-25). Default 5.","example":5}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"organizations":[{"id":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","name":"Riverside Builders"}],"projects":[{"id":"104ad307-aee6-4277-9c47-ebb899a035f5","name":"Riverside Medical Center","project_number":"PRJ-1042"}],"contacts":[]},"query":"riverside"},"properties":{"data":{"type":"object","properties":{"organizations":{"type":"array","example":[{"id":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","name":"Riverside Builders"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"name":{"type":"string","example":"Riverside Builders"}}}},"projects":{"type":"array","example":[{"id":"104ad307-aee6-4277-9c47-ebb899a035f5","name":"Riverside Medical Center","project_number":"PRJ-1042"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"104ad307-aee6-4277-9c47-ebb899a035f5"},"name":{"type":"string","example":"Riverside Medical Center"},"project_number":{"type":"string","example":"PRJ-1042"}}}},"contacts":{"type":"array","example":[]}}},"query":{"type":"string","example":"riverside"}}}}}}},"tags":["Search"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","description":"Must be at least 2 characters. Must not be greater than 255 characters.","example":"b"},"types":{"type":"array","description":"","example":["contacts"],"items":{"type":"string","enum":["organizations","projects","contacts"]}},"per_type":{"type":"integer","description":"Must be at least 1.","example":22,"nullable":true}},"required":["q"]}}}}}},"/api/v1/shipper-auth":{"get":{"summary":"List shipper credentials","operationId":"listShipperCredentials","description":"Stored carrier credentials (secrets are never returned in full).","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"carrier","description":"Filter by carrier: usps, fedex or ups.","example":"usps","required":true,"schema":{"type":"string","description":"Filter by carrier: usps, fedex or ups.","example":"usps"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"0dcb0594-f4de-4aa6-af1c-f817576255bb","carrier":"usps","label":"adipisci quidem","account_number":"310719","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"df86388d-681d-4f89-9511-b03a8ce34ecf","carrier":"ups","label":"adipisci molestias","account_number":"696081","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"0dcb0594-f4de-4aa6-af1c-f817576255bb","carrier":"usps","label":"adipisci quidem","account_number":"310719","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"df86388d-681d-4f89-9511-b03a8ce34ecf","carrier":"ups","label":"adipisci molestias","account_number":"696081","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"0dcb0594-f4de-4aa6-af1c-f817576255bb"},"carrier":{"type":"string","example":"usps"},"label":{"type":"string","example":"adipisci quidem"},"account_number":{"type":"string","example":"310719"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Shipper Auth"]},"post":{"summary":"Store a shipper credential","operationId":"storeAShipperCredential","description":"Saves an encrypted carrier API credential.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"0dcea519-ea7e-424e-8922-a421c4e48e20","carrier":"usps","label":"et animi","account_number":"089432","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"0dcea519-ea7e-424e-8922-a421c4e48e20"},"carrier":{"type":"string","example":"usps"},"label":{"type":"string","example":"et animi"},"account_number":{"type":"string","example":"089432"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Shipper Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"carrier":{"type":"string","description":"Shipping carrier the credential is for.","example":"usps","enum":["usps","fedex","ups"]},"label":{"type":"string","description":"Optional friendly name for the credential. Must not be greater than 255 characters.","example":"USPS account","nullable":true},"api_key":{"type":"string","description":"Carrier API key. Stored encrypted; never returned in full. Must not be greater than 1000 characters.","example":"live_xxx"},"api_secret":{"type":"string","description":"Optional carrier API secret. Must not be greater than 1000 characters.","example":"b","nullable":true},"account_number":{"type":"string","description":"Optional carrier account number. Must not be greater than 255 characters.","example":"0001234","nullable":true},"environment":{"type":"string","description":"Carrier environment the credential targets.","example":"production","enum":["sandbox","production"],"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["organization_id","carrier","api_key"]}}}}}},"/api/v1/shipper-auth/{uuid}":{"get":{"summary":"Retrieve a shipper credential","operationId":"retrieveAShipperCredential","description":"Returns a single credential by UUID (secrets masked).","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"1a210080-d9cc-437d-b800-591c5cbea122","carrier":"usps","label":"adipisci quidem","account_number":"310719","environment":"sandbox","is_active":true,"has_api_key":true,"has_api_secret":true,"verified_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"1a210080-d9cc-437d-b800-591c5cbea122"},"carrier":{"type":"string","example":"usps"},"label":{"type":"string","example":"adipisci quidem"},"account_number":{"type":"string","example":"310719"},"environment":{"type":"string","example":"sandbox"},"is_active":{"type":"boolean","example":true},"has_api_key":{"type":"boolean","example":true},"has_api_secret":{"type":"boolean","example":true},"verified_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Shipper Auth"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/support/health":{"get":{"summary":"Health check","operationId":"healthCheck","description":"Liveness probe plus CLS connectivity. No auth required.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"status":"ok","time":"2026-09-09T00:00:00+00:00","cls":{"driver":"http","reachable":true}},"properties":{"status":{"type":"string","example":"ok"},"time":{"type":"string","example":"2026-09-09T00:00:00+00:00"},"cls":{"type":"object","properties":{"driver":{"type":"string","example":"http"},"reachable":{"type":"boolean","example":true}}}}}}}}},"tags":["Support"],"security":[]}},"/api/v1/support/credits":{"get":{"summary":"Credit summary","operationId":"creditSummary","description":"Credit balance and recent usage totals for the calling organization.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"balance":250,"cls_eligible_balance":250,"used_last_30d":42.5},"properties":{"balance":{"type":"number","example":250},"cls_eligible_balance":{"type":"number","example":250},"used_last_30d":{"type":"number","example":42.5}}}}}}},"tags":["Support"]}},"/api/v1/support/usage":{"get":{"summary":"Usage summary","operationId":"usageSummary","description":"API and billable-event counts for the calling organization.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"api_calls_last_30d":1284,"documents_generated_last_30d":37,"mail_sent_last_30d":12},"properties":{"api_calls_last_30d":{"type":"integer","example":1284},"documents_generated_last_30d":{"type":"integer","example":37},"mail_sent_last_30d":{"type":"integer","example":12}}}}}}},"tags":["Support"]}},"/api/v1/waivers":{"get":{"summary":"List waivers","operationId":"listWaivers","description":"Paginated lien waivers visible to the caller.","parameters":[{"in":"query","name":"type","description":"Filter by type.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by type.","example":"architecto"}},{"in":"query","name":"status","description":"Filter by lifecycle status.","example":"architecto","required":true,"schema":{"type":"string","description":"Filter by lifecycle status.","example":"architecto"}},{"in":"query","name":"project_id","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this project (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"pay_application_id","description":"Filter to this pay application (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this pay application (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"12a4eac2-9589-4fff-b86b-36ccad5d5c19","project_id":"373471bf-f4bd-48bb-a68e-5a4609437257","pay_application_id":"beb6c7a6-2b50-42d2-903f-c911b1626516","division_id":"1ca1015e-4d3e-41b2-beee-21e6bd8876fc","type":"unconditional","status":"pending","amount":"122864.55","through_date":"2024-07-19","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"c93ae1d2-0662-496c-8279-ca592a4d36b8","project_id":"5704fe13-342d-43b3-8c41-eda8bade8b91","pay_application_id":"6a2ac7a4-db29-4993-8573-fe2bdda57446","division_id":"26d0f33e-8a15-47e4-b59c-2982a93fcc54","type":"unconditional","status":"pending","amount":"120142.13","through_date":"2013-10-02","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"12a4eac2-9589-4fff-b86b-36ccad5d5c19","project_id":"373471bf-f4bd-48bb-a68e-5a4609437257","pay_application_id":"beb6c7a6-2b50-42d2-903f-c911b1626516","division_id":"1ca1015e-4d3e-41b2-beee-21e6bd8876fc","type":"unconditional","status":"pending","amount":"122864.55","through_date":"2024-07-19","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"c93ae1d2-0662-496c-8279-ca592a4d36b8","project_id":"5704fe13-342d-43b3-8c41-eda8bade8b91","pay_application_id":"6a2ac7a4-db29-4993-8573-fe2bdda57446","division_id":"26d0f33e-8a15-47e4-b59c-2982a93fcc54","type":"unconditional","status":"pending","amount":"120142.13","through_date":"2013-10-02","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"12a4eac2-9589-4fff-b86b-36ccad5d5c19"},"project_id":{"type":"string","example":"373471bf-f4bd-48bb-a68e-5a4609437257"},"pay_application_id":{"type":"string","example":"beb6c7a6-2b50-42d2-903f-c911b1626516"},"division_id":{"type":"string","example":"1ca1015e-4d3e-41b2-beee-21e6bd8876fc"},"type":{"type":"string","example":"unconditional"},"status":{"type":"string","example":"pending"},"amount":{"type":"string","example":"122864.55"},"through_date":{"type":"string","example":"2024-07-19"},"check_number":{"type":"string","example":null,"nullable":true},"exceptions":{"type":"string","example":null,"nullable":true},"signee_name":{"type":"string","example":null,"nullable":true},"signee_title":{"type":"string","example":null,"nullable":true},"signed_at":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Waivers"]},"post":{"summary":"Create a waiver","operationId":"createAWaiver","description":"Creates a conditional or unconditional lien waiver.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"20979b21-c3eb-4c26-afd2-f1b8eebe7688","project_id":"4a0d9882-3dec-4143-baaa-8ca6cfc86025","pay_application_id":"05c2b85f-a59a-4d2f-a126-3a112041be23","division_id":"dfa04dd3-2280-4e99-a7e9-d2ef2e1dd906","type":"unconditional","status":"pending","amount":"122864.55","through_date":"2024-07-19","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"20979b21-c3eb-4c26-afd2-f1b8eebe7688"},"project_id":{"type":"string","example":"4a0d9882-3dec-4143-baaa-8ca6cfc86025"},"pay_application_id":{"type":"string","example":"05c2b85f-a59a-4d2f-a126-3a112041be23"},"division_id":{"type":"string","example":"dfa04dd3-2280-4e99-a7e9-d2ef2e1dd906"},"type":{"type":"string","example":"unconditional"},"status":{"type":"string","example":"pending"},"amount":{"type":"string","example":"122864.55"},"through_date":{"type":"string","example":"2024-07-19"},"check_number":{"type":"string","example":null,"nullable":true},"exceptions":{"type":"string","example":null,"nullable":true},"signee_name":{"type":"string","example":null,"nullable":true},"signee_title":{"type":"string","example":null,"nullable":true},"signed_at":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Waivers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"division_id":{"type":"string","description":"UUID of the claimant division. Optional: inherited from the project. Supplying a division other than the project one is rejected (422). Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"project_id":{"type":"string","description":"UUID of the project. Required unless pay_application_id is given. This field is required when <code>pay_application_id</code> is not present. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"pay_application_id":{"type":"string","description":"UUID of the pay application this waiver is tied to. Required unless project_id is given. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"type":{"type":"string","description":"Waiver type: conditional or unconditional.","example":"conditional","enum":["conditional","unconditional"]},"amount":{"type":"number","description":"Waiver amount, in dollars. Must be at least 0.","example":75000},"through_date":{"type":"string","description":"Effective-through date of the waiver (YYYY-MM-DD). Must be a valid date.","example":"2026-05-31"},"check_number":{"type":"string","description":"Optional payment check number referenced by the waiver. Must not be greater than 50 characters.","example":"10482","nullable":true},"exceptions":{"type":"string","description":"Optional text describing amounts or claims excluded from the waiver. Must not be greater than 10000 characters.","example":"b","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline.","example":null,"properties":[],"nullable":true}},"required":["organization_id","type","amount","through_date"]}}}}}},"/api/v1/waivers/{uuid}":{"get":{"summary":"Retrieve a waiver","operationId":"retrieveAWaiver","description":"Returns a single waiver by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"18aeb5b5-fe3b-4c17-b9dc-441ff7873371","project_id":"4193443a-85dd-4130-b83e-396a1c8090d4","pay_application_id":"b1de1cb2-2161-49e4-8e32-d467b8589177","division_id":"8ea7eed2-3ecd-4fcd-98ee-de4f37a02564","type":"conditional","status":"pending","amount":"486859.78","through_date":"2006-04-05","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"18aeb5b5-fe3b-4c17-b9dc-441ff7873371"},"project_id":{"type":"string","example":"4193443a-85dd-4130-b83e-396a1c8090d4"},"pay_application_id":{"type":"string","example":"b1de1cb2-2161-49e4-8e32-d467b8589177"},"division_id":{"type":"string","example":"8ea7eed2-3ecd-4fcd-98ee-de4f37a02564"},"type":{"type":"string","example":"conditional"},"status":{"type":"string","example":"pending"},"amount":{"type":"string","example":"486859.78"},"through_date":{"type":"string","example":"2006-04-05"},"check_number":{"type":"string","example":null,"nullable":true},"exceptions":{"type":"string","example":null,"nullable":true},"signee_name":{"type":"string","example":null,"nullable":true},"signee_title":{"type":"string","example":null,"nullable":true},"signed_at":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Waivers"]},"patch":{"summary":"Update a waiver","operationId":"updateAWaiver","description":"Applies a partial update to a waiver.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"2cff6cf6-f816-4853-a890-b88b2c61066e","project_id":"513c3b2c-2616-45a9-bf3d-1c0c7d3af4d7","pay_application_id":"ffbd2bba-d19c-41d2-9e6f-6eef2765b274","division_id":"5f3ca6b3-70c6-4550-b05c-9a97cbaf981b","type":"unconditional","status":"pending","amount":"122864.55","through_date":"2024-07-19","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"2cff6cf6-f816-4853-a890-b88b2c61066e"},"project_id":{"type":"string","example":"513c3b2c-2616-45a9-bf3d-1c0c7d3af4d7"},"pay_application_id":{"type":"string","example":"ffbd2bba-d19c-41d2-9e6f-6eef2765b274"},"division_id":{"type":"string","example":"5f3ca6b3-70c6-4550-b05c-9a97cbaf981b"},"type":{"type":"string","example":"unconditional"},"status":{"type":"string","example":"pending"},"amount":{"type":"string","example":"122864.55"},"through_date":{"type":"string","example":"2024-07-19"},"check_number":{"type":"string","example":null,"nullable":true},"exceptions":{"type":"string","example":null,"nullable":true},"signee_name":{"type":"string","example":null,"nullable":true},"signee_title":{"type":"string","example":null,"nullable":true},"signed_at":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Waivers"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"pay_application_id":{"type":"string","description":"UUID of the pay application this waiver is tied to. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","nullable":true},"type":{"type":"string","description":"Waiver type: conditional or unconditional.","example":"conditional","enum":["conditional","unconditional"]},"amount":{"type":"number","description":"Waiver amount, in dollars. Must be at least 0.","example":75000},"through_date":{"type":"string","description":"Effective-through date of the waiver (YYYY-MM-DD). Must be a valid date.","example":"2026-05-31"},"check_number":{"type":"string","description":"Optional payment check number referenced by the waiver. Must not be greater than 50 characters.","example":"10482","nullable":true},"exceptions":{"type":"string","description":"Optional text describing amounts or claims excluded from the waiver. Must not be greater than 10000 characters.","example":"b","nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag (max 32 KB, depth 6, 500 items). Claimant-identity keys (claimant_name, claimant_address, claimant_license_number, ...) are rejected here (422): the claimant comes from the division. Supply metadata.owner.name / metadata.gc.name to satisfy the document preflight inline.","example":null,"properties":[],"nullable":true}}}}}}},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/waivers/{waiver_uuid}/sign":{"post":{"summary":"Sign a waiver","operationId":"signAWaiver","description":"Records the signer name and title and marks the waiver signed.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"557abed2-927f-44a3-8464-fd30bbb3c4fa","project_id":"29f8df8d-0240-4ea6-96b6-6bdd2084124c","pay_application_id":"83539844-eb4c-4c1b-ab22-5d425d9300fa","division_id":"a19e0832-548a-41c5-b38f-40eebe80fce7","type":"unconditional","status":"pending","amount":"497668.34","through_date":"1997-11-28","check_number":null,"exceptions":null,"signee_name":null,"signee_title":null,"signed_at":null,"cls_reference_id":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"557abed2-927f-44a3-8464-fd30bbb3c4fa"},"project_id":{"type":"string","example":"29f8df8d-0240-4ea6-96b6-6bdd2084124c"},"pay_application_id":{"type":"string","example":"83539844-eb4c-4c1b-ab22-5d425d9300fa"},"division_id":{"type":"string","example":"a19e0832-548a-41c5-b38f-40eebe80fce7"},"type":{"type":"string","example":"unconditional"},"status":{"type":"string","example":"pending"},"amount":{"type":"string","example":"497668.34"},"through_date":{"type":"string","example":"1997-11-28"},"check_number":{"type":"string","example":null,"nullable":true},"exceptions":{"type":"string","example":null,"nullable":true},"signee_name":{"type":"string","example":null,"nullable":true},"signee_title":{"type":"string","example":null,"nullable":true},"signed_at":{"type":"string","example":null,"nullable":true},"cls_reference_id":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Waivers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signee_name":{"type":"string","description":"Full name of the person signing the waiver. Must not be greater than 255 characters.","example":"Jane Smith"},"signee_title":{"type":"string","description":"Job title of the signer. Must not be greater than 255 characters.","example":"Controller"}},"required":["signee_name","signee_title"]}}}}},"parameters":[{"in":"path","name":"waiver_uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/webhooks":{"get":{"summary":"List webhook subscriptions","operationId":"listWebhookSubscriptions","description":"Paginated webhook subscriptions visible to the caller.","parameters":[{"in":"query","name":"organization_id","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c","required":true,"schema":{"type":"string","description":"Filter to this organization (UUID).","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"}},{"in":"query","name":"per_page","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15,"required":true,"schema":{"type":"integer","description":"Results per page. Clamped to 1-100; defaults to 15.","example":15}},{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"50657cb6-5ddd-4578-b10d-12e27b653d13","organization_id":"445f3fde-a538-4125-862d-4b1733f433a6","url":"http://armstrong.net/error-voluptatibus-odio-ut-dignissimos","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"efaddca8-666f-4a1f-bd07-bad5249de0a8","organization_id":"c5099161-9693-42a9-ae6b-1b507255ee69","url":"http://tromp.com/molestias-reiciendis-velit-doloremque-quidem-et.html","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}},"properties":{"data":{"type":"array","example":[{"id":"50657cb6-5ddd-4578-b10d-12e27b653d13","organization_id":"445f3fde-a538-4125-862d-4b1733f433a6","url":"http://armstrong.net/error-voluptatibus-odio-ut-dignissimos","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"},{"id":"efaddca8-666f-4a1f-bd07-bad5249de0a8","organization_id":"c5099161-9693-42a9-ae6b-1b507255ee69","url":"http://tromp.com/molestias-reiciendis-velit-doloremque-quidem-et.html","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}],"items":{"type":"object","properties":{"id":{"type":"string","example":"50657cb6-5ddd-4578-b10d-12e27b653d13"},"organization_id":{"type":"string","example":"445f3fde-a538-4125-862d-4b1733f433a6"},"url":{"type":"string","example":"http://armstrong.net/error-voluptatibus-odio-ut-dignissimos"},"events":{"type":"array","example":["pay_app.created","pay_app.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","example":true},"last_triggered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}},"links":{"type":"object","properties":{"first":{"type":"string","example":"/?page=1"},"last":{"type":"string","example":"/?page=1"},"prev":{"type":"string","example":null,"nullable":true},"next":{"type":"string","example":null,"nullable":true}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","example":1},"from":{"type":"integer","example":1},"last_page":{"type":"integer","example":1},"links":{"type":"array","example":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"items":{"type":"object","properties":{"url":{"type":"string","example":null,"nullable":true},"label":{"type":"string","example":"&laquo; Previous"},"page":{"type":"string","example":null,"nullable":true},"active":{"type":"boolean","example":false}}}},"path":{"type":"string","example":"/"},"per_page":{"type":"integer","example":15},"to":{"type":"integer","example":2},"total":{"type":"integer","example":2}}}}}}}}},"tags":["Webhooks"]},"post":{"summary":"Create a webhook subscription","operationId":"createAWebhookSubscription","description":"Registers an HTTPS endpoint for the given event names.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"f1abc611-cc8e-4105-950d-2b6970c142f1","organization_id":"7726d606-ffc1-4542-9d77-ce85cc7d4a17","url":"http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"f1abc611-cc8e-4105-950d-2b6970c142f1"},"organization_id":{"type":"string","example":"7726d606-ffc1-4542-9d77-ce85cc7d4a17"},"url":{"type":"string","example":"http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"},"events":{"type":"array","example":["pay_app.created","pay_app.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","example":true},"last_triggered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"UUID of the organization this record belongs to. Must be one the API key can access. Must match an existing stored value.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"url":{"type":"string","description":"HTTPS endpoint to POST events to. Private, loopback and reserved hosts are rejected in production. Must not be greater than 2048 characters.","example":"https://example.com/webhooks/prelien"},"events":{"type":"array","description":"A single event name.","example":["pay_application.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","description":"Whether the subscription is active. Defaults to true.","example":true,"nullable":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}},"required":["organization_id","url","events"]}}}}}},"/api/v1/webhooks/{uuid}":{"get":{"summary":"Retrieve a webhook subscription","operationId":"retrieveAWebhookSubscription","description":"Returns a single subscription by UUID.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"6b406358-2c5e-4a4c-ab88-cbe487465337","organization_id":"90bd12c9-31f5-454b-a277-53c20f100cfd","url":"http://www.price.org/","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"6b406358-2c5e-4a4c-ab88-cbe487465337"},"organization_id":{"type":"string","example":"90bd12c9-31f5-454b-a277-53c20f100cfd"},"url":{"type":"string","example":"http://www.price.org/"},"events":{"type":"array","example":["pay_app.created","pay_app.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","example":true},"last_triggered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Webhooks"]},"put":{"summary":"Update a webhook subscription","operationId":"updateAWebhookSubscription","description":"Partial update of URL, events or active state.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"dbda829b-e4c0-4b07-8958-6d3bba67230e","organization_id":"dcfed30b-9935-4c12-aec5-26d65ff05466","url":"http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html","events":["pay_app.created","pay_app.approved"],"is_active":true,"last_triggered_at":null,"metadata":null,"created_at":"2026-10-05T15:49:20+00:00","updated_at":"2026-10-05T15:49:20+00:00"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dbda829b-e4c0-4b07-8958-6d3bba67230e"},"organization_id":{"type":"string","example":"dcfed30b-9935-4c12-aec5-26d65ff05466"},"url":{"type":"string","example":"http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"},"events":{"type":"array","example":["pay_app.created","pay_app.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","example":true},"last_triggered_at":{"type":"string","example":null,"nullable":true},"metadata":{"type":"string","example":null,"nullable":true},"created_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"},"updated_at":{"type":"string","example":"2026-10-05T15:49:20+00:00"}}}}}}}}},"tags":["Webhooks"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"HTTPS endpoint to POST events to. Private, loopback and reserved hosts are rejected in production. Must not be greater than 2048 characters.","example":"https://example.com/webhooks/prelien"},"events":{"type":"array","description":"A single event name. This field is required when <code>events</code> is present. Must not be greater than 255 characters.","example":["pay_application.approved"],"items":{"type":"string"}},"is_active":{"type":"boolean","description":"Whether the subscription is active.","example":true},"metadata":{"type":"object","description":"Free-form keyvalue bag stored alongside the record (max 32 KB, depth 6, 500 items).","example":null,"properties":[],"nullable":true}}}}}}},"delete":{"summary":"Delete a webhook subscription","operationId":"deleteAWebhookSubscription","description":"Removes the subscription.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Webhook subscription deleted."},"properties":{"message":{"type":"string","example":"Webhook subscription deleted."}}}}}}},"tags":["Webhooks"]},"parameters":[{"in":"path","name":"uuid","description":"","example":"6ff8f7f6-1eb3-3525-be4a-3932c805afed","required":true,"schema":{"type":"string"}}]},"/api/v1/webhooks/mail-provider":{"post":{"summary":"Mail-provider callback","operationId":"mailProviderCallback","description":"Inbound endpoint for the mail provider. HMAC-signed; not called by API clients.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"Webhook processed."},"properties":{"message":{"type":"string","example":"Webhook processed."}}}}}}},"tags":["Webhooks"],"security":[]}},"/api/v1/webhooks/cls/fulfillment-status":{"post":{"summary":"CLS fulfillment-status callback","operationId":"cLSFulfillmentStatusCallback","description":"Inbound endpoint for CLS research status updates. HMAC-signed; not called by API clients.","parameters":[{"in":"header","name":"X-Organization-UUID","description":"","example":"{YOUR_ORGANIZATION_UUID}","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","example":{"message":"ok"},"properties":{"message":{"type":"string","example":"ok"}}}}}}},"tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fulfillment_request_id":{"type":"string","description":"UUID of the fulfillment request this status update is for. Must be a valid UUID.","example":"9b7e0e2a-1c3d-4f5a-8b6c-2d4e6f8a0b1c"},"status":{"type":"string","description":"New lifecycle status of the CLS ticket.","example":"fulfilled","enum":["submitted_to_cls","in_progress","payment_required","fulfilled","failed","cancelled","rejected"]},"payment_required":{"type":"object","description":"This field is required when <code>status</code> is <code>payment_required</code>.","example":null,"properties":{"recipients":{"type":"integer","description":"This field is required when <code>payment_required</code> is present. Must be at least 1. Must not be greater than 500.","example":1}}},"status_reason":{"type":"string","description":"Optional explanation for the status change. Must not be greater than 10000 characters.","example":"n","nullable":true},"last_error":{"type":"string","description":"Optional error detail when status is failed. Must not be greater than 10000 characters.","example":"g","nullable":true},"cls_resource_type":{"type":"string","description":"Optional CLS resource type the ticket resolved to. Must not be greater than 100 characters.","example":"notice","nullable":true},"cls_resource_id":{"type":"string","description":"Optional CLS resource id the ticket resolved to. Must not be greater than 100 characters.","example":"cls_ntc_88213","nullable":true},"meta":{"type":"object","description":"Optional bounded keyvalue bag of extra context.","example":null,"properties":[],"nullable":true},"result":{"type":"object","description":"Research output for a fulfilled ticket (project / parties / notice specifics). Intentionally flexible and bounded rather than a fixed schema.","example":null,"properties":[],"nullable":true},"refund_decision":{"type":"string","description":"Optional operator-supplied refund instruction. CLS itself never dictates refunds.","example":"none","enum":["full","partial","none"],"nullable":true},"refund_amount":{"type":"number","description":"Refund amount; required when refund_decision is partial. This field is required when <code>refund_decision</code> is <code>partial</code>. Must be at least 0.01.","example":12,"nullable":true},"refund_reason":{"type":"string","description":"Optional explanation recorded with the refund. Must not be greater than 10000 characters.","example":"m","nullable":true}},"required":["fulfillment_request_id","status"]}}}},"security":[]}}}}