POST
/
api
/
v1
/
partnerships
Create Partner
curl --request POST \
  --url https://app.journeybee.io/api/v1/partnerships \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "<string>",
  "emails": [
    {
      "email": "<string>",
      "firstName": "<string>",
      "lastName": "<string>",
      "tags": [
        {}
      ]
    }
  ],
  "partnerType": "<string>",
  "tierId": 123,
  "categoryId": 123,
  "stageUuid": "<string>",
  "inactive": true,
  "countryId": 123,
  "emailDomain": "<string>",
  "reseller": "<string>",
  "assignedUsers": [
    {}
  ],
  "tags": [
    {}
  ],
  "customFields": [
    {
      "customFieldId": 123,
      "type": "<string>",
      "value": {
        "text": "<string>",
        "number": 123,
        "date": "<string>",
        "boolean": true,
        "select": 123,
        "multi_select": [
          {}
        ]
      }
    }
  ]
}'
{
  "status": "created",
  "message": "Partnership created successfully"
}

Authentication

curl -X POST "https://app.journeybee.io/api/v1/partnerships" \
  -H "Authorization: Bearer your-api-key-uuid" \
  -H "Content-Type: application/json" \
  -d '{"name": "Partner Company", "emails": [{"email": "contact@partner.com"}]}'

Request Body Schema

name
string
required
The name of the partner company
emails
array
required
Array of contact email objects for the partner
partnerType
string
required
Type of partnership. Options: referral, reseller
tierId
number
ID of the tier to assign to this partner
categoryId
number
ID of the category to assign to this partner
stageUuid
string
UUID of the stage to assign to this partner
inactive
boolean
Whether to create the partnership as inactive (won’t send invites)
countryId
number
ID of the partner’s country
emailDomain
string
Partner’s email domain (auto-detected from email if not provided)
reseller
string
For reseller partnerships, specify who is the reseller. Options: company, partner
assignedUsers
array
Array of user IDs to assign to this partnership
tags
array
Array of tag IDs to assign to this partnership
customFields
array
Array of custom field values

Response Schema

The API returns a 201 Created status code on success with no response body, but triggers the partnership creation and invitation flow.

Example Request

curl -X POST "https://app.journeybee.io/api/v1/companies/123/partnerships" \
  -H "Authorization: Bearer jb_api_1234567890abcdef" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TechCorp Solutions",
    "emails": [
      {
        "email": "john@techcorp.com",
        "firstName": "John",
        "lastName": "Smith",
        "tags": [1, 2]
      }
    ],
    "partnerType": "referral",
    "tierId": 2,
    "categoryId": 3,
    "countryId": 1,
    "assignedUsers": [456],
    "tags": [10, 11],
    "customFields": [
      {
        "customFieldId": 5,
        "type": "number",
        "value": {
          "number": 100000
        }
      },
      {
        "customFieldId": 6,
        "type": "select",
        "value": {
          "select": 2
        }
      }
    ]
  }'

Example Response

{
  "status": "created",
  "message": "Partnership created successfully"
}

Error Responses

{
  "error": "Invalid email format or missing required fields"
}
{
  "error": "Invalid API key or insufficient permissions"
}
{
  "error": "Write access required for this operation"
}
{
  "error": "Invalid email domains or attempting to partner with self"
}
{
  "error": "Partnership already exists with this company"
}

Notes

  • Requires API key with write_access permission
  • All emails must be from the same business domain
  • Triggers email invitations unless inactive: true is specified