Skip to main content
OpenQuota is a commissions platform for revenue teams. It reads deal data from your CRM (or anywhere you’re willing to stream events from), runs a plan of rules against that data, and produces earnings with a complete trace back to the event that triggered them.

Core concepts

Deals

The thing you track. A deal has a state (amount, stage, close date, owner, plus any custom fields you send) and a stream of events as it moves forward.

Domain events

Every change to a deal becomes an append-only event. Deleting historical data or “patching” a deal is never how you fix things — you emit a new event and let the engine re-compute.

Plans

A plan is a set of chip rules (“base rate on closed-won”, “SPIF when stage = negotiation”, “attribution share to non-owners that engaged”) that the engine evaluates on every deal event.

Earnings

The output: one row per rule-fired commission, with the exact chip, rule version, triggering domain event, and computation trace. Reads return the full trace on request.

The API in a sentence

You generate a scoped API key in the admin UI, then use it as a Bearer token to:
  • Push deal events (POST /v1/deals/events) — OpenQuota recomputes earnings automatically.
  • Read deals, earnings, and plans — everything is org-scoped to your key.
You can also subscribe to outbound webhooks so your systems learn about new earnings in real time.

What you won’t find

  • No PATCH/PUT on earnings or plans — plan edits create new plan versions, and earnings are immutable once the period locks.
  • No hand-entered adjustments via the API — those are admin-only in the UI for auditability.
  • No raw SQL surface — the API is an intentionally-narrow contract, not a database pipe.

Next

Quickstart

Make your first authenticated call in under five minutes.

API reference

Every endpoint, generated from the running API.