|
2 | 2 |
|
3 | 3 | All notable changes to `laravel-bexio` will be documented in this file. |
4 | 4 |
|
| 5 | +## 20260618 | v14.0 |
| 6 | + |
| 7 | +This is a **MAJOR** release with breaking changes. All DTOs and fixtures were reconciled |
| 8 | +against a live bexio instance (accounting period 2026). |
| 9 | + |
| 10 | +### ⚠️ Breaking Changes |
| 11 | + |
| 12 | +- **Removed `IbanPayments`**: Deleted all `IbanPayments` request classes |
| 13 | + (`GetIbanPaymentRequest`, `CreateIbanPaymentRequest`, `EditIbanPaymentRequest`) and the |
| 14 | + `CreateEditIbanPaymentDTO`. The underlying endpoints no longer exist in the bexio API. |
| 15 | +- **Removed `QrPayments`**: Deleted all `QrPayments` request classes |
| 16 | + (`GetQrPaymentRequest`, `CreateQrPaymentRequest`, `EditQrPaymentRequest`) and the |
| 17 | + `CreateEditQrPaymentDTO`. The underlying endpoints no longer exist in the bexio API. |
| 18 | +- **`Payments` migrated to the banking API**: `Payments` now targets `/4.0/banking/payments`. |
| 19 | + - `FetchAListOfPaymentsRequest(?string $filterBy, ?int $page, ?int $perPage)` returns a |
| 20 | + `Collection` of `PaymentDTO` (the wrapped `results` array is unwrapped automatically). |
| 21 | + - `DeleteAPaymentRequest(int|string $payment_id)` → `DELETE /4.0/banking/payments/{id}`. |
| 22 | + - `CancelAPaymentRequest(int|string $payment_id)` → `POST /4.0/banking/payments/{id}/cancel`. |
| 23 | + - `Payments\PaymentDTO` was rewritten with the new banking shape (id, uuid, sender, |
| 24 | + recipient, amount, currency, execution_date, allowance, is_salary, instruction_id, |
| 25 | + purchase_reference, document_no, qr_reference_number, additional_information, status, |
| 26 | + type, due_date, created_at, is_editing_restricted). |
| 27 | +- **`ItemPositions` are now document-scoped article positions**: requests target |
| 28 | + `/2.0/{kb_document_type}/{document_id}/kb_position_article[/{position_id}]` and have new |
| 29 | + constructor signatures: |
| 30 | + - `FetchAListOfItemPositionsRequest(string $kb_document_type, int $document_id)` |
| 31 | + - `FetchAnItemPositionRequest(string $kb_document_type, int $document_id, int $item_position_id)` |
| 32 | + - `CreateAnItemPositionRequest(string $kb_document_type, int $document_id, ?CreateEditItemPositionDTO $itemPosition)` |
| 33 | + - `EditAnItemPositionRequest(string $kb_document_type, int $document_id, int $item_position_id, ?CreateEditItemPositionDTO $itemPosition)` |
| 34 | + - `DeleteAnItemPositionRequest(string $kb_document_type, int $document_id, int $item_position_id)` |
| 35 | + - Creating a position requires `article_id`; the edit endpoint rejects `article_id`. |
| 36 | +- **`EditAnItemRequest` now uses `POST`** (previously `PUT`) to match the bexio API. |
| 37 | +- **DTO field corrections across many resources** to match the live API, including: |
| 38 | + - `AccountDTO` / `AccountGroupDTO`: added `uuid`, dropped `account_type_enum`. |
| 39 | + - `ContactDTO`: `salutation_form_id` → `salutation_form`. |
| 40 | + - `DocumentSettingDTO`: corrected `user_*` → `use_*` enumeration typo. |
| 41 | + - `TaxDTO`: added `start_month` / `end_month`. |
| 42 | + - Invoice `PaymentDTO` and `ReminderDTO` reshaped to match the API responses. |
| 43 | + - Additional field type/name fixes across other resources. |
| 44 | + |
| 45 | +### 🧪 Tests |
| 46 | + |
| 47 | +- Regenerated all Saloon test fixtures against a live bexio instance (accounting period 2026). |
| 48 | + |
| 49 | +### 🔧 CI |
| 50 | + |
| 51 | +- All GitHub Actions upgraded to Node 24-native versions (e.g. `actions/checkout@v5`, `actions/upload-artifact@v6`, `actions/setup-node@v6`, `actions/cache@v5`, `actions/dependency-review-action@v5`) — no Node 20/16 actions remain. |
| 52 | + |
5 | 53 | ## 20251127 |
6 | 54 |
|
7 | 55 | ### Added REST APIs | v13.5 |
|
0 commit comments