Compliance API
Compliance States
type ComplianceState =
| 'pending'
| 'in_review'
| 'approved'
| 'rejected'
| 'archived'Endpoints
Get Compliance Status
GET /api/dashboard/deals/[id]/compliance
Authorization: Bearer <jwt>Request Upload URL
POST /api/dashboard/deals/[id]/compliance/upload-url
Authorization: Bearer <jwt>
Content-Type: application/json
{ "filename": "contract.pdf", "category": "contract" }Returns presigned S3 URL valid for 15 minutes.
Confirm Document Upload
PATCH /api/dashboard/deals/[id]/compliance
Authorization: Bearer <jwt>
Content-Type: application/json
{
"document_key": "deals/[deal_id]/contract.pdf",
"category": "contract"
}Submit for Review
POST /api/dashboard/deals/[id]/compliance/submit
Authorization: Bearer <jwt>Moves compliance state from pending to in_review. Notifies broker.
Approve (Broker)
POST /api/brokerage/compliance/[deal_id]/approve
Authorization: Bearer <jwt> (broker only)Reject (Broker)
POST /api/brokerage/compliance/[deal_id]/reject
Authorization: Bearer <jwt> (broker only)
Content-Type: application/json
{ "reason": "Missing vendor disclosure form" }OnootsSign — Send
POST /api/brokerage/onoots-sign/send
Authorization: Bearer <jwt> (broker+)OnootsSign — Void
POST /api/brokerage/onoots-sign/void
Authorization: Bearer <jwt> (broker+)Last updated on