aeglio / aeglio-api-php-sdk
PHP SDK for the Aeglio API.
v0.2.0
2026-04-29 08:30 UTC
Requires
- php: ^8.4
Requires (Dev)
- phpunit/phpunit: ^12.1
README
Install
composer require aeglio/aeglio-api-php-sdk
Development
composer install
composer test
AEGLIO_TOKEN=your_token php smoke.php
Create Client
use Aeglio\Aeglio; $aeglio = new Aeglio(token: 'team_api_token');
Default base URL:
Aeglio::DEFAULT_BASE_URL; // https://api.aeglio.com/v1
Expenses
use Aeglio\Dto\ExpenseCategoryData; use Aeglio\Dto\ExpenseData; use Aeglio\Dto\ExpensePaymentData; $category = $aeglio->expenseCategories()->create(new ExpenseCategoryData( name: 'Travel', isGos: false, )); $expense = $aeglio->expenses()->create(new ExpenseData( number: 'EXP-001', amount: 120.50, issuedAt: '2026-04-21', dueAt: '2026-04-28', categoryId: $category->id, notes: 'Hotel stay', billable: true, )); $payment = $expense->addPayment(new ExpensePaymentData( sum: 120.50, paidAt: '2026-04-22', notes: 'Paid by bank transfer', ));
Invoices
use Aeglio\Dto\ClientData; use Aeglio\Dto\InvoiceData; use Aeglio\Dto\InvoicePaymentData; use Aeglio\Dto\InvoiceRowData; $client = $aeglio->clients()->create(new ClientData( name: 'Acme Ltd', locale: 'en_US', )); $invoice = $aeglio->invoices()->create(new InvoiceData( clientId: $client->id, number: 'INV-001', issuedAt: '2026-04-24', dueAt: '2026-05-01', rows: [ new InvoiceRowData( type: 'regular', title: 'Development work', quantity: 2, price: 75.00, ), ], )); $payment = $invoice->addPayment(new InvoicePaymentData( sum: 150.00, paidAt: '2026-04-25', )); $pdf = $invoice->downloadPdf();
Other Resources
use Aeglio\Dto\ClientData; use Aeglio\Dto\ProjectData; use Aeglio\Dto\TaxRateData; $client = $aeglio->clients()->create(new ClientData( name: 'Globex', locale: 'en_US', )); $project = $aeglio->projects()->create(new ProjectData( clientId: $client->id, name: 'Website rebuild', type: 'time', )); $taxRate = $aeglio->taxRates()->create(new TaxRateData( title: 'VAT', percentage: 22.0, default: true, ));
Available Sections
clients()projects()taxRates()expenseCategories()expenses()invoices()
Public API
Clients
clients()->list(int $perPage = 50, int $page = 1)clients()->find(int $id)clients()->create(ClientData $data)clients()->update(int $id, UpdateClientData $data)clients()->delete(int $id)
Projects
projects()->list(?bool $archived = null, int $perPage = 50, int $page = 1)projects()->find(int $id)projects()->create(ProjectData $data)projects()->update(int $id, UpdateProjectData $data)projects()->delete(int $id)
Tax Rates
taxRates()->list(int $perPage = 50, int $page = 1)taxRates()->find(int $id)taxRates()->create(TaxRateData $data)taxRates()->update(int $id, UpdateTaxRateData $data)taxRates()->delete(int $id)
Expense Categories
expenseCategories()->list(int $perPage = 50, int $page = 1)expenseCategories()->find(int $id)expenseCategories()->create(ExpenseCategoryData $data)expenseCategories()->update(int $id, UpdateExpenseCategoryData $data)expenseCategories()->delete(int $id)
Expenses
expenses()->list(?array $state = null, int $perPage = 50, int $page = 1)expenses()->find(int $id)expenses()->create(ExpenseData $data)expenses()->update(int $id, UpdateExpenseData $data)expenses()->delete(int $id)expenses()->addPayment(int $expenseId, ExpensePaymentData $data)expenses()->updatePayment(int $expenseId, int $paymentId, UpdateExpensePaymentData $data)expenses()->deletePayment(int $expenseId, int $paymentId)expenses()->listPayments(int $expenseId, int $perPage = 50, int $page = 1)expenses()->findPayment(int $expenseId, int $paymentId)expenses()->downloadAttachment(int $expenseId)
Entity helpers:
$expense->addPayment(...)$expense->update(...)$expense->delete()$expense->payments(...)$expense->downloadAttachment()
Invoices
invoices()->list(?array $state = null, int $perPage = 50, int $page = 1)invoices()->find(int $id)invoices()->create(InvoiceData $data)invoices()->update(int $id, UpdateInvoiceData $data)invoices()->delete(int $id)invoices()->addPayment(int $invoiceId, InvoicePaymentData $data)invoices()->updatePayment(int $invoiceId, int $paymentId, UpdateInvoicePaymentData $data)invoices()->deletePayment(int $invoiceId, int $paymentId)invoices()->listPayments(int $invoiceId, int $perPage = 50, int $page = 1)invoices()->findPayment(int $invoiceId, int $paymentId)invoices()->send(int $invoiceId, SendInvoiceData $data)invoices()->downloadPdf(int $invoiceId)
Entity helpers:
$invoice->addPayment(...)$invoice->update(...)$invoice->delete()$invoice->payments(...)$invoice->send(...)$invoice->downloadPdf()