PHP: >= 7.4
Extensions: Composer, PHP-JSON
composer:
composer require clicksports/lex-office-api
Search for the official API Documentation here.
You need an API Key for that.
$apiKey = getenv('LEX_OFFICE_API_KEY'); // store keys in .env file
$api = new \Clicksports\LexOffice\Api($apiKey);
// 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);
// get a page
/** @var \Clicksports\LexOffice\Api $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);
$response = $api->country()->getAll();
$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
$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
$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
$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
$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
$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
$response = $api->payment()->get($entityId);
$response = $api->paymentCondition()->getAll();
$response = $api->postingCategory()->getAll();
$response = $api->profile()->get();
// 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();
$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();
$response = $api->file()->upload($filePath, $voucherType);
$response = $api->file()->get($entityId);
$json = $api->*()->getAsJson($response);