exbil / lexoffice-php-api
Simple API Integration for Lex-Office
0.14.1
2023-09-28 21:53 UTC
Requires
- php: ^7.4 | ^8
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^6.2 | ^7.0
- psr/cache: ^1.0 | ^2.0 | ^3.0
Requires (Dev)
- fzaninotto/faker: ^1.9.1
- phpunit/phpunit: ^9.0
- symfony/cache: ^5.1
This package is auto-updated.
Last update: 2025-04-26 22:59:29 UTC
README
Getting Started
Requirements
βοΈ Install
In the root of your project execute the following:
composer require exbil/lexoffice-php-api
or add this to your composer.json
file:
{ "require": { "exbil/lexoffice-php-api": "^0.14.1" } }
π Usage
Search for the official API Documentation here.
You need an API Key for that.
ποΈ Basic
$apiKey = getenv('LEX_OFFICE_API_KEY'); // store keys in .env file $api = new \exbil\LexOffice\LexOfficeClient($apiKey);
ποΈ set cache
// can be any PSR-6 compatibly cache handler // in this example we are using symfony/cache $cacheInterface = new \Symfony\Component\Cache\Adapter\FilesystemAdapter( 'lexoffice', 3600, __DIR__ . '/cache' ); $api->setCacheInterface($cacheInterface);
π Contact Endpoint
// get a page /** @var \exbil\LexOffice\LexOfficeClient $api */ $client = $api->contact(); $client->size = 100; $client->sortDirection = 'ASC'; $client->sortProperty = 'name'; // get a page $response = $client->getPage(0); //get all $response = $client->getAll(); // other methods $response = $client->get($entityId); $response = $client->create($data);
πΊοΈ Country Endpoint
$response = $api->country()->getAll();
π Invoices Endpoint
$response = $api->invoice()->getAll(); $response = $api->invoice()->get($entityId); $response = $api->invoice()->create($data); $response = $api->invoice()->document($entityId); // get document ID $response = $api->invoice()->document($entityId, true); // get file content
π Down Payment Invoices Endpoint
$response = $api->downPaymentInvoice()->getAll(); $response = $api->downPaymentInvoice()->get($entityId); $response = $api->downPaymentInvoice()->create($data); $response = $api->downPaymentInvoice()->document($entityId); // get document ID $response = $api->downPaymentInvoice()->document($entityId, true); // get file content
π΅ Order Confirmation Endpoint
$response = $api->orderConfirmation()->getAll(); $response = $api->orderConfirmation()->get($entityId); $response = $api->orderConfirmation()->create($data); $response = $api->orderConfirmation()->document($entityId); // get document ID $response = $api->orderConfirmation()->document($entityId, true); // get file content
π Quotation Endpoint
$response = $api->quotation()->getAll(); $response = $api->quotation()->get($entityId); $response = $api->quotation()->create($data); $response = $api->quotation()->document($entityId); // get document ID $response = $api->quotation()->document($entityId, true); // get file content
π Voucher Endpoint
$response = $api->voucher()->getAll(); $response = $api->voucher()->get($entityId); $response = $api->voucher()->create($data); $response = $api->voucher()->update($entityId, $data); $response = $api->voucher()->document($entityId); // get document ID $response = $api->voucher()->document($entityId, true); // get file content
π΅ Credit Notes Endpoint
$response = $api->creditNote()->getAll(); $response = $api->creditNote()->get($entityId); $response = $api->creditNote()->create($data); $response = $api->creditNote()->document($entityId); // get document ID $response = $api->creditNote()->document($entityId, true); // get file content
π΅ Payment Endpoint
$response = $api->payment()->get($entityId);
π΅ Payment Conditions Endpoint
$response = $api->paymentCondition()->getAll();
ποΈ Posting Categories Endpoint
$response = $api->postingCategory()->getAll();
π§π» Profile Endpoint
$response = $api->profile()->get();
π Recurring Templates Endpoint
// get single entitiy $response = $api->recurringTemplate()->get($entityId); // use pagination $client = $api->recurringTemplate(); $client->size = 100; // get a page $response = $client->getPage(0); //get all $response = $client->getAll();
π Voucherlist Endpoint
$client = $api->voucherlist(); $client->size = 100; $client->sortDirection = 'DESC'; $client->sortColumn = 'voucherNumber'; $client->types = [ 'salesinvoice', 'salescreditnote', 'purchaseinvoice', 'purchasecreditnote', 'invoice', 'downpaymentinvoice', 'creditnote', 'orderconfirmation', 'quotation' ]; $client->statuses = [ 'draft', 'open', 'paid', 'paidoff', 'voided', //'overdue', overdue can only be fetched alone 'accepted', 'rejected' ]; // get everything what we can, not recommend: //$client->setToEverything() // get a page $response = $client->getPage(0); //get all $response = $client->getAll();
π File Endpoint
$response = $api->file()->upload($filePath, $voucherType); $response = $api->file()->get($entityId);
βοΈ Get JSON from Response
$json = $api->*()->getAsJson($response);