Deals
Create deal
Create a new deal and associate roles on it for existing partners.
Body parameters
| Parameter | Type | Description |
|---|---|---|
contactId | integer | ID of an existing contact to link to this deal. Mutually exclusive with contact. |
stage | string | The deal pipeline stage name. Must match an existing stage configured in your Kiflo account (e.g. New, Qualified, Closed Won). |
closeDate | string | Expected close date of the deal. ISO 8601 UTC format (e.g. 2025-12-31T00:00:00Z). |
properties | object | Dictionary of custom deal properties defined in your Kiflo account. Keys are the property API names. |
partners | array | List of partner roles on the deal. Each entry links a partner with a specific role type. See partners[] below. |
contact | object | Inline contact to create and associate with the deal. Mutually exclusive with contactId. See contact below. |
source | string | Origin of the deal data. Accepted values: Unknown, Website, Partner, Api, Zapier, Tenant, System, HubSpot, Stripe, PartnerDirectory. |
contractStartDate | string | Contract start date. ISO 8601 UTC format. |
contractEndDate | string | Contract end date. ISO 8601 UTC format. |
currency | string | ISO 4217 currency code (e.g. USD, EUR). |
sourcePartnerId | integer | ID of the partner that sourced this deal. Required when source is set to Partner. |
status | string | Initial deal status. Accepted values: Pending, Accepted, Refused, Expired. Defaults to Pending. |
ownerUserId | integer | ID of the internal user to set as deal owner. Leave null to rely on the assignToPartnerOwner logic instead. |
assignToPartnerOwner | boolean | When true, automatically assigns the deal owner from the source partner’s owner. Only applied when ownerUserId is not set. Defaults to true. |
partners[]
| Parameter | Type | Description |
|---|---|---|
partnerId | integer | Required. ID of the partner to associate with the deal. |
partnerType | string | The partner role name (e.g. Reseller, Business Introducer). Must match an existing partner type in your account. |
userPartnerOwnerId | integer | ID of the partner’s user to set as deal contact on the partner side. Leave null to use the partner’s default owner. |
contact
| Parameter | Type | Description |
|---|---|---|
properties | object | Contact properties. Must include at minimum firstName, lastName, and email. |
source | string | Origin of the contact data. Accepted values: Unknown, Website, Partner, Api, Zapier, Tenant, System, HubSpot, Stripe, PartnerDirectory. |
POST
/
v3
/
deals
curl --request POST \
--url https://api.example.com/v3/deals \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"contactId": null,
"stage": "New",
"closeDate": "2025-12-31T00:00:00",
"properties": {
"name": "Contoso — platform rollout",
"service_amount": 10000,
"arr_amount": 1200
},
"partners": null,
"contact": {
"properties": {
"firstName": "John",
"lastName": "Doe",
"email": "john@contoso.com"
},
"source": "Unknown"
},
"source": null,
"contractStartDate": null,
"contractEndDate": null,
"currency": "USD",
"sourcePartnerId": 84,
"status": null,
"ownerUserId": null,
"assignToPartnerOwner": false
}
'{
"id": 123,
"contactId": 123,
"sourcePartnerId": 123,
"stage": "<string>",
"creationDate": "2023-11-07T05:31:56Z",
"totalAmount": 123,
"properties": {},
"sourceLeadId": 123,
"status": "Unknown",
"partners": [
{
"id": 123,
"dealId": 123,
"userPartnerOwnerId": 123,
"userPartnerOwnerName": "<string>",
"userPartnerFirstName": "<string>",
"userPartnerLastName": "<string>",
"userPartnerEmail": "<string>",
"userPartnerJobTitle": "<string>",
"userPartnerPhoneNumber": "<string>",
"userPartnerLinkedInProfileUrl": "<string>",
"partnerId": 123,
"partnerTypeId": 123,
"creationDate": "2023-11-07T05:31:56Z",
"partnerName": "<string>",
"partnerTypeName": "<string>"
}
],
"contractStartDate": "2023-11-07T05:31:56Z",
"contractEndDate": "2023-11-07T05:31:56Z",
"ownerUserId": 123,
"owner": {
"id": 123,
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>"
},
"closeDate": "2023-11-07T05:31:56Z",
"customerId": 123,
"currency": "<string>"
}Body
application/json-patch+jsonapplication/jsontext/jsonapplication/*+json
Response
Deal created
curl --request POST \
--url https://api.example.com/v3/deals \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"contactId": null,
"stage": "New",
"closeDate": "2025-12-31T00:00:00",
"properties": {
"name": "Contoso — platform rollout",
"service_amount": 10000,
"arr_amount": 1200
},
"partners": null,
"contact": {
"properties": {
"firstName": "John",
"lastName": "Doe",
"email": "john@contoso.com"
},
"source": "Unknown"
},
"source": null,
"contractStartDate": null,
"contractEndDate": null,
"currency": "USD",
"sourcePartnerId": 84,
"status": null,
"ownerUserId": null,
"assignToPartnerOwner": false
}
'{
"id": 123,
"contactId": 123,
"sourcePartnerId": 123,
"stage": "<string>",
"creationDate": "2023-11-07T05:31:56Z",
"totalAmount": 123,
"properties": {},
"sourceLeadId": 123,
"status": "Unknown",
"partners": [
{
"id": 123,
"dealId": 123,
"userPartnerOwnerId": 123,
"userPartnerOwnerName": "<string>",
"userPartnerFirstName": "<string>",
"userPartnerLastName": "<string>",
"userPartnerEmail": "<string>",
"userPartnerJobTitle": "<string>",
"userPartnerPhoneNumber": "<string>",
"userPartnerLinkedInProfileUrl": "<string>",
"partnerId": 123,
"partnerTypeId": 123,
"creationDate": "2023-11-07T05:31:56Z",
"partnerName": "<string>",
"partnerTypeName": "<string>"
}
],
"contractStartDate": "2023-11-07T05:31:56Z",
"contractEndDate": "2023-11-07T05:31:56Z",
"ownerUserId": 123,
"owner": {
"id": 123,
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>"
},
"closeDate": "2023-11-07T05:31:56Z",
"customerId": 123,
"currency": "<string>"
}
