SalesOS

Splits

Revenue and commission split configuration

Get opportunity splits

GET
/v1/opportunities/{opportunityId}/splits

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits" \
  -H "Authorization: Bearer <token>"

Create split

POST
/v1/opportunities/{opportunityId}/splits

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
userIdRequiredstring
splitTypestring
Value in: "REFERRAL" | "REVENUE" | "OVERLAY" | "QUOTA" | "MANAGEMENT"
splitPercentRequirednumber
Minimum: 0Maximum: 100
includeInQuotaboolean
includeInForecastboolean
notesstring

Path Parameters

opportunityIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/opportunities/<string>/splits" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "string",
    "splitType": "REFERRAL",
    "splitPercent": 100,
    "includeInQuota": true,
    "includeInForecast": true,
    "notes": "string"
  }'

{}

People who can be credited on this deal (active org members).

GET
/v1/opportunities/{opportunityId}/splits/eligible-users

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/eligible-users" \
  -H "Authorization: Bearer <token>"

Upsert several splits in one transaction (applying AI suggestions).

POST
/v1/opportunities/{opportunityId}/splits/apply

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
splitsRequiredarray<object>

Items: at least 1, at most 20.

Path Parameters

opportunityIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/opportunities/<string>/splits/apply" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "splits": [
      {
        "userId": "string",
        "splitType": "REFERRAL",
        "splitPercent": 100
      }
    ]
  }'

Update split

PATCH
/v1/opportunities/{opportunityId}/splits/{splitId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
splitTypestring
Value in: "REFERRAL" | "REVENUE" | "OVERLAY" | "QUOTA" | "MANAGEMENT"
splitPercentnumber
Minimum: 0Maximum: 100
includeInQuotaboolean
includeInForecastboolean
notesstring

Path Parameters

opportunityIdRequiredstring
splitIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/opportunities/<string>/splits/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "splitType": "REFERRAL",
    "splitPercent": 100,
    "includeInQuota": true,
    "includeInForecast": true,
    "notes": "string"
  }'

{}

Delete split

DELETE
/v1/opportunities/{opportunityId}/splits/{splitId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
splitIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/opportunities/<string>/splits/<string>" \
  -H "Authorization: Bearer <token>"

Approve split

POST
/v1/opportunities/{opportunityId}/splits/{splitId}/approve

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
splitIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/opportunities/<string>/splits/<string>/approve" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}

Reject split

POST
/v1/opportunities/{opportunityId}/splits/{splitId}/reject

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Path Parameters

opportunityIdRequiredstring
splitIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/opportunities/<string>/splits/<string>/reject" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

{}

Get my splits

GET
/v1/splits/my-splits

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

statusRequiredstring
includeInForecastRequiredstring
curl -X GET "https://api.salesos.org/v1/splits/my-splits?status=%3Cstring%3E&includeInForecast=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

Get team splits

GET
/v1/splits/team-splits

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

statusRequiredstring
userIdRequiredstring
curl -X GET "https://api.salesos.org/v1/splits/team-splits?status=%3Cstring%3E&userId=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Get split stats

GET
/v1/splits/stats

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/splits/stats" \
  -H "Authorization: Bearer <token>"

Recalculate split amounts

POST
/v1/opportunities/{opportunityId}/splits/recalculate

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/opportunities/<string>/splits/recalculate" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}

Suggest splits

GET
/v1/opportunities/{opportunityId}/splits/ai/suggest

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/ai/suggest" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Analyze quota impact

GET
/v1/opportunities/{opportunityId}/splits/ai/quota-impact

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/ai/quota-impact" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Detect conflicts

GET
/v1/opportunities/{opportunityId}/splits/ai/conflicts

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/ai/conflicts" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Get analytics

GET
/v1/opportunities/{opportunityId}/splits/ai/analytics

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/ai/analytics" \
  -H "Authorization: Bearer <token>"

{}

Get airecommendation

GET
/v1/opportunities/{opportunityId}/splits/ai/recommendation

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

opportunityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/opportunities/<string>/splits/ai/recommendation" \
  -H "Authorization: Bearer <token>"