Push a raw deal event into OpenQuota. Creates a source event, a normalized domain event, and upserts the deal projection. Safe to retry with the same dedup_key.
dedup_key are absorbed without side effects. The server uses it to short-circuit duplicate source events, domain events, and projection updates. In practice: put a stable value there (e.g. your system’s event ID plus a timestamp for create vs update), and retry freely on network errors.
If you omit dedup_key, the server generates one from external_id + current timestamp. That works for ad-hoc pushes but defeats idempotency across retries, so provide one whenever you can.
custom fieldstate object accepts any fields beyond the standard set (amount_cents, stage, close_date, owner_external_id). Anything extra is preserved under state.custom and made available to your plan rules that reference custom fields. No field registration is required.Provide your API key as Authorization: Bearer <key>. Generate keys in the OpenQuota admin under Settings → API Keys.
Stable ID for the deal in the caller's system.
1The deal's current canonical state. Any fields beyond the standard set are preserved under state.custom.
Optional hint for downstream consumers. Defaults to 'upsert'.
upsert, stage_change, amount_change, delete Deduplication key. If you retry with the same key, the event is absorbed idempotently.