composer require aeglio/aeglio-api-php-sdkcomposer install
composer test
AEGLIO_TOKEN=your_token php smoke.phpuse Aeglio\Aeglio;
$aeglio = new Aeglio(token: 'team_api_token');Default base URL:
Aeglio::DEFAULT_BASE_URL; // https://api.aeglio.com/v1use 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,
supplierId: 42,
notes: 'Hotel stay',
billable: true,
));
$payment = $expense->addPayment(new ExpensePaymentData(
sum: 120.50,
paidAt: '2026-04-22',
notes: 'Paid by bank transfer',
));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',
countryCode: 'EE',
vatNumber: 'EE123456789',
address: 'Main Street 1',
city: 'Tallinn',
postalCode: '10115',
stateRegion: 'Harju maakond',
));
$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();use Aeglio\Dto\ClientData;
use Aeglio\Dto\ProjectData;
use Aeglio\Dto\TaxRateData;
$client = $aeglio->clients()->create(new ClientData(
name: 'Globex',
locale: 'en_US',
countryCode: 'FI',
vatNumber: 'FI12345678',
address: 'Updated Street 5',
city: 'Helsinki',
postalCode: '00100',
stateRegion: 'Uusimaa',
));
$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,
));clients()suppliers()projects()taxRates()expenseCategories()expenses()invoices()
clients()->list(int $perPage = 50, int $page = 1, ?string $search = null)clients()->find(int $id)clients()->create(ClientData $data)clients()->update(int $id, UpdateClientData $data)clients()->delete(int $id)
suppliers()->list(int $perPage = 50, int $page = 1, ?string $search = null)suppliers()->find(int $id)suppliers()->create(ClientData $data)suppliers()->update(int $id, UpdateClientData $data)suppliers()->delete(int $id)
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)
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)
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()->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()->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()