POST /deals
Upserts deals from your system into Recotap. Creates the deal if externalDealId is new; updates it if it already exists. Max 100 deals per request. Returns HTTP 200 regardless of per-item outcome.
| Field | Type | Required | Description |
|---|---|---|---|
deals | array | Yes | Min 1, max 100 deal objects |
| Field | Type | Required | Description |
|---|---|---|---|
externalDealId | string | Yes | Your system’s unique deal ID, used for deduplication e.g. "deal-001" |
name | string | Yes | Deal title e.g. "Acme Corp - Enterprise Plan" |
amount | number | No | Deal value e.g. 75000 |
stageId | string | No | Stage ID in your system e.g. "stage-3" |
stageLabel | string | No | Stage display name e.g. "Proposal Sent" |
pipelineId | string | No | Pipeline ID in your system e.g. "smb-pipeline" |
pipelineLabel | string | No | Pipeline display name e.g. "SMB Sales" |
startDate | string | No | ISO 8601 deal start date e.g. "2026-01-15T00:00:00Z" |
closedDate | string | No | ISO 8601 expected or actual close date e.g. "2026-06-30T00:00:00Z" |
ownerName | string | No | Name of the sales rep who owns this deal in your system e.g. "Jane Smith" |
ownerEmail | string | No | Email of the sales rep who owns this deal in your system e.g. "jane@yourcompany.com". Must be a valid email format if provided. |
ownerId | string | No | Rep’s owner ID in your system e.g. "rep-123" |
dealCurrencyCode | string | No | e.g. "USD", "EUR", "GBP" |
associatedAccounts | array | No | Accounts linked to this deal, used for revenue attribution |
associatedAccounts object
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | No | Your system account ID e.g. "crm-001" |
domain | string | No | Account domain used for matching in Recotap e.g. "acme.com". If no match is found, the deal is still created with the account unlinked. |
name | string | No | Company display name e.g. "Acme Corp" |
data