smart-dato / brt
BRT Laravel sdk
Fund package maintenance!
0.0.4
2026-03-09 08:05 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0||^12.0
- saloonphp/saloon: ^3.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9||^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/extension-installer: ^1.3||^2.0
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpstan/phpstan-phpunit: ^1.3||^2.0
- spatie/laravel-ray: ^1.35
This package is auto-updated.
Last update: 2026-03-09 08:10:48 UTC
README
A Laravel package for integrating with the BRT (Bartolini) courier API, built on Saloon.
Installation
composer require smart-dato/brt
Publish the config file:
php artisan vendor:publish --tag="brt-config"
This is the contents of the published config file:
return [ 'base_url' => env('BRT_BASE_URL', 'https://api.brt.it/orm'), 'api_key' => env('BRT_API_KEY'), ];
Add your API key to .env:
BRT_API_KEY=your-api-key
Usage
Create a pickup request
use SmartDato\Brt\BrtConnector; use SmartDato\Brt\Enums\PayerType; use SmartDato\Brt\Enums\Stakeholder\Type; use SmartDato\Brt\Requests\Pickup\Create\CreatePickupRequest; use SmartDato\Brt\ValueObjects\BrtSpecifics; use SmartDato\Brt\ValueObjects\CollectionRequest; use SmartDato\Brt\ValueObjects\CustomerInfos; use SmartDato\Brt\ValueObjects\OpeningHour; use SmartDato\Brt\ValueObjects\RequestInfos; use SmartDato\Brt\ValueObjects\Stakeholder\Contact; use SmartDato\Brt\ValueObjects\Stakeholder\ContactDetails; use SmartDato\Brt\ValueObjects\Stakeholder\Customer; use SmartDato\Brt\ValueObjects\Stakeholder\Stakeholder; $connector = new BrtConnector(); $response = $connector->send( new CreatePickupRequest([ new CollectionRequest( requestInfos: new RequestInfos( collectionDate: now()->nextWeekday(), parcelCount: 1, ), customerInfos: new CustomerInfos( custAccNumber: '0000000', ), stakeholders: [ new Stakeholder( type: Type::Requester, customerInfos: new Customer( custAccNumber: '0000000000', ), ), new Stakeholder( type: Type::Sender, customerInfos: new Customer( custAccNumber: '0000000000', ), contact: new Contact( contactDetails: new ContactDetails( phone: '0000000000', contactPerson: 'John Doe', ), ), ), ], brtSpec: new BrtSpecifics( collectionTime: '11:00', goodDescription: 'Package description', payerType: PayerType::Ordering, weightKG: 2.3, openingHours: [ new OpeningHour(from: '10:00', to: '13:00'), new OpeningHour(from: '15:00', to: '17:00'), ], ), ), ]) ); $data = $response->json();
Search pickup requests
use SmartDato\Brt\BrtConnector; use SmartDato\Brt\Enums\Sort; use SmartDato\Brt\Requests\Pickup\Search\SearchPickupRequest; $connector = new BrtConnector(); $response = $connector->send( new SearchPickupRequest( limit: 10, offset: 0, sort: Sort::DESC, ) );
Get pickup details
use SmartDato\Brt\Requests\Pickup\Search\DetailPickupRequest; $response = $connector->send(new DetailPickupRequest(id: '123456'));
Count pickup requests
use SmartDato\Brt\Requests\Pickup\Search\CountPickupRequest; $response = $connector->send(new CountPickupRequest());
Cancel a pickup
use SmartDato\Brt\Requests\Pickup\Cancellation\CancelPickupRequest; $response = $connector->send(new CancelPickupRequest(id: '123456'));
Update a pickup
use SmartDato\Brt\Requests\Pickup\Edit\UpdatePickupRequest; $response = $connector->send(new UpdatePickupRequest(id: '123456'));
Using a custom API key
You can pass a token directly to the connector instead of using the config:
$connector = new BrtConnector(token: 'your-api-key');
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.