Download the PHP package mcore-services/teamleader-sdk without Composer

On this page you can find all versions of the php package mcore-services/teamleader-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package teamleader-sdk

Teamleader Focus SDK for Laravel

Latest Version Total Downloads PHP Version Laravel Version License Tests Docs

A Laravel package for the Teamleader Focus API. Handles OAuth token management, rate limiting, and around 70 API resources behind a consistent interface.

Quick Links:


✨ Key Features

πŸ” Authentication & Security

πŸš€ Performance & Reliability

πŸ“¦ Developer Experience

🎯 API Coverage

CRM β€” Companies, Contacts, Business Types, Tags, Addresses

Deals & Sales β€” Deals, Quotations, Orders, Pipelines, Phases, Sources, Lost Reasons

Invoicing β€” Invoices, Credit Notes, Payment Methods, Payment Terms, Tax Rates, Withholding Tax Rates, Commercial Discounts, Subscriptions

Expenses β€” Expenses, Incoming Invoices, Incoming Credit Notes, Receipts, Bookkeeping Submissions

Projects & Time Tracking β€” Projects (both the current and legacy systems), Project Tasks, Groups, Materials, Project Lines, External Parties, Time Tracking, Timers

Planning β€” Reservations, User Availability, Plannable Items

Calendar & Activities β€” Meetings, Calls, Call Outcomes, Calendar Events, Activity Types

Products & Services β€” Products, Product Categories, Units of Measure, Work Types, Price Lists

General β€” Users, Teams, Departments, Custom Fields, Currencies, Notes, Files, Document Templates, User Schedules, Closing Days, Days Off, Day Off Types, Email Tracking

System β€” Webhooks, Cloud Platforms, Accounts, Migration Utilities


πŸ“‹ Requirements

Laravel 10 and 11 were dropped in v2.0. Both are EOL with unpatched CVEs, and Composer's security advisories block installing them.


πŸš€ Installation

1. Install via Composer

2. Publish the Configuration

3. Configure Environment Variables

4. Set Up OAuth Routes

Note: No php artisan migrate is required. The SDK creates the teamleader_tokens table on first use.


πŸ”‘ Authentication


πŸ“– Basic Usage

Every resource follows the same shape:

$filters maps to the API's filter object. $options carries page_size, page_number, sort, sort_order and include.

Companies

Contacts

Deals

Invoices

A grouped line with no section title must omit the section key entirely β€” Teamleader rejects both null and ''. See the Invoices reference.

Time Tracking

Files

Custom Fields


πŸ“„ Pagination

The API returns no total count. Most endpoints send no meta block, so the only end-of-list signal is a page shorter than the requested page size β€” meaning a full final page costs one extra empty request.


⚑ Rate Limiting

Teamleader allows 200 requests per sliding minute. The SDK tracks usage in Redis, throttles progressively as the window fills, and waits for a free slot rather than firing a request that can only come back as a 429.

The wait is capped by teamleader.rate_limiting.max_wait_ms (default 5000). Once the cap is reached a RateLimitExceededException is thrown and the decision returns to you β€” which in a queue worker usually means releasing the job:

Set max_wait_ms to 65000 if you would rather the SDK sit out a full window itself β€” sensible for a CLI import, less so for a web request.


πŸ”— Sideloading

Related records can be requested in the same call, via $options['include'] or the fluent methods:

Includes are per endpoint. list and info frequently accept different sets, and some endpoints accept none at all. An unsupported include throws rather than being silently ignored.


πŸͺ Webhooks

The payload carries the entity id at subject.id, not data.id:


πŸ› οΈ Error Handling

All API exceptions extend TeamleaderException.

Client-side validation throws InvalidArgumentException before the request is sent β€” for unsupported filter keys, sort fields, includes and subject types:

This is deliberate. The API answers 200 to filters it does not recognise and returns the complete unfiltered set, so silence is the more dangerous outcome.


πŸ–₯️ Artisan Commands


βœ… Specification Parity

Every resource is checked against Teamleader's machine-readable API specification, @teamleader/focus-api-specification, currently pinned at 1.221.0.

The Teamleader API answers 200 OK to a filter, sort field, include or body field it does not recognise, and simply ignores it. A typo therefore looks like success: a mistyped filter returns every record, and a mistyped field on an update changes nothing. The SDK checks those names against the specification and throws before the request is sent.

How that is kept true:


🀝 Contributing

Contributions are welcome β€” see CONTRIBUTING.md.

Bug reports are especially useful when they include what you expected, what happened, and how you worked around it. Several fixes in v2.2.0 came directly from reports written that way.


πŸ”’ Security

If you discover a security issue, email [email protected] rather than using the issue tracker. See SECURITY.md.


πŸ“ Changelog

See CHANGELOG.md.


πŸ“œ License

The MIT License (MIT). See LICENSE.md.


πŸ™ Credits

πŸ’¬ Support

πŸ—ΊοΈ Roadmap


Made with ❀️ by MCore Services


All versions of teamleader-sdk with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
guzzlehttp/guzzle Version ^7.0 || ^8.0
illuminate/support Version ^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mcore-services/teamleader-sdk contains the following files

Loading the files please wait ...