This is a PHP wrapper for the Teamleader API v2. Documentation of the API can be found here: https://developer.focus.teamleader.eu/. Please note that the Teamleader API v2 is not complete and some Entities and Actions are missing.
Currently we support these entities and per entity only a few actions:
- Company (create and update, getById)
- Contact (create, update, linkToCompany, getById)
- Deal (create, update, move, get, getById)
- Deal phases (get)
- Deal sources (get)
- Activity types (get)
- Event (create, update, delete, get, getById)
- Business types (get)
- Tags (get)
- Invoice (get, book, registerPayment, download, file)
- Credit notes (get)
- Payment terms (get)
- Tax rates (get)
- Withholding tax rates (get)
- Departments (get)
- User (me, get, getById)
- Webhook (get, register)
- Projects (get, getById)
- Tasks (get, getById)
- Milestones (get, getById)
- TimeTracking (get, getById)
- Worktypes (get)
- Productcategories (get)
- Products (create, get, getById)
- Custom fields (get)
- Quotations (get, getById, download, file)
Teamleader API v2 works with OAuth2. This means your application needs to be registered on the Teamleader Marketplace (you can keep them private though).
Please contact me at jan@jannesmannes.nl if you have any feedback or questions.
You can support us by making a donation.
We appreciate you sending us a postcard from your hometown. You'll find our address on our contact page (inspired by @spatie).
See all examples in the examples directory.
You need to do this once, after you get an access token you can use the refresh token to obtain a new access token after it expires.
<?php
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/credentials.php';
$redirectUrl = 'https://teamleader-php-sdk.dev/examples/acquire-access-token.php';
$connection = new \Teamleader\Connection();
$connection->setClientId( $clientId );
$connection->setClientSecret( $clientSecret );
$connection->setRedirectUrl( $redirectUrl );
$connection->acquireAccessToken();
$company = $client->company( [
'name' => 'Test API v2',
] )->save();
$dealPhases = $client->dealPhase()->get();
- Fixed Guzzle 7 support
- Set API version
- Updated Guzzle dependency
- Changed base URL to focus.teamleader.eu
- Updated entity fields
- Improved default cache handler
- Added custom fields to Project entity
- Find invoice by id
Cheers to @rQwk
- Added Quotations endpoint
- Updated fillables for Invoice entity
Thanks to @kjellknapen
Features:
- Added invoice download and file actions
Thanks to @jurrienpiris
Features:
- Added summary to fillable attributes of the Deal entity
Thanks to @marzsman
Features:
- Get custom fields
Credits for this release go to @kjellknapen and @PazkaL
Features:
- Book invoices and register payments
- Get product categories
- Get products
Credits for this release go to @cschalenborgh
Features:
- Get deals improvements
- Get projects
- Get tasks
- Get milestones
- Get time tracking
- Get work types
Many thanks to @Senjutsuu and @carakas from @sumocoders for most of the below changes!
Features:
- Move deals
- List and register webhooks
- Added repo license
- Added old id to new id migration endpoint
- Moved to PHP 7.1
- Activity type entity added
- Event entity added
- Added a remove endpoint to all storable entities
- Added businesstype entity
- Added tag entity
- Added invoice entity
- Added credit note entity
- Added tax rate entity
- Added payment term entity
- Added withholding tax rate entity
- Added department entity
- Added unit tests
- A lot of code refactoring
- Added filter, paging en sorting attributes to entities
- Added JSON serialisation
- Added fetchAll method to entities
- Added user entity
Fixes:
- Updated outdated attributes for the company entity
- Fix getting data from the cache when there is no cached data
- Storable::update fixed
Features:
- Added Contact->linkToCompany Action
Features:
- Added readme
Fixes:
- Switched back to GuzzleHttp 6
Features:
- Added more examples
- Implemented FindAll action
- Added DealPhase entity
- Added DealSource entity