-
-
Notifications
You must be signed in to change notification settings - Fork 0
External Parties
Manage external stakeholders on projects in Teamleader Focus.
External parties are contacts or companies linked to a project with a functional role (e.g. contractor, client representative). They are separate from the project's internal team.
Access via Teamleader::external_parties().
SDK key uses underscore:
external_partiesβ not camelCase.No standard
list()method. UseaddToProject(),update(), anddelete()to manage external parties.
addToProject()accepts two call signatures β an array or individual parameters.
projects-v2/externalParties
| Capability | Supported |
|---|---|
| Pagination | β Not supported |
| Filtering | β Not supported |
| Sorting | β Not supported |
| Sideloading | β Not supported |
| Creation | β
Via addToProject()
|
| Update | β Supported |
| Deletion | β Supported |
Two calling conventions β array or individual params:
use McoreServices\TeamleaderSDK\Facades\Teamleader;
// Array form
$result = Teamleader::external_parties()->addToProject([
'project_id' => 'project-uuid',
'customer' => ['type' => 'company', 'id' => 'company-uuid'],
'function' => 'Main Contractor',
'sub_function' => 'Electrical',
]);
// Individual params: (projectId, type, customerId, function, subFunction)
$result = Teamleader::external_parties()->addToProject(
'project-uuid',
'contact',
'contact-uuid',
'Project Consultant',
'Senior' // optional sub_function
);customer.type must be contact or company. function and sub_function are optional.
Injects id into the request body. Customer type is validated if provided.
Teamleader::external_parties()->update('external-party-uuid', [
'function' => 'Lead Designer',
'sub_function' => null,
]);
// Update the customer reference
Teamleader::external_parties()->update('external-party-uuid', [
'customer' => ['type' => 'contact', 'id' => 'new-contact-uuid'],
]);Throws if $id is empty.
Teamleader::external_parties()->delete('external-party-uuid');Alias for delete().
Teamleader::external_parties()->removeFromProject('external-party-uuid');Updates only the role fields.
Teamleader::external_parties()->updateRole('external-party-uuid', 'Technical Lead', null);// Add a company as contractor
Teamleader::external_parties()->addToProject(
'project-uuid', 'company', 'company-uuid', 'Sub-contractor'
);
// Later update their role
Teamleader::external_parties()->updateRole('external-party-uuid', 'Prime Contractor');
// Remove when no longer involved
Teamleader::external_parties()->removeFromProject('external-party-uuid');use InvalidArgumentException;
// Missing required params in individual-param form
try {
Teamleader::external_parties()->addToProject('project-uuid'); // missing type and id
} catch (InvalidArgumentException $e) {
// 'When using individual parameters, projectId, customerType, and customerId are required'
}
// Invalid customer type
try {
Teamleader::external_parties()->addToProject('project-uuid', 'team', 'team-uuid', 'Lead');
} catch (InvalidArgumentException $e) {
// 'Invalid customer type. Must be one of: contact, company'
}Last Updated: August 2026 β’ SDK Version: 2.2.2 β’ Made with β€οΈ by MCore Services
- Departments
- Users
- Teams
- Custom Fields
- Work Types
- Document Templates
- Currencies
- Notes
- Email Tracking
- Closing Days
- Day Off Types
- Days Off
- User Schedules
- Invoices
- Credit Notes
- Subscriptions
- Payment Methods
- Payment Terms
- Tax Rates
- Withholding Tax Rates
- Commercial Discounts
Next Gen Projects
Legacy Projects