diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 16265a9..8d06148 100644
--- a/.speakeasy/gen.lock
+++ b/.speakeasy/gen.lock
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 0e1578f5-5df8-4086-96d6-369ac62fc49d
management:
- docChecksum: 6385e11ae594d46afc1910ffab8d003a
- docVersion: 10.8.3
- speakeasyVersion: 1.454.0
- generationVersion: 2.477.0
- releaseVersion: 0.0.4
- configChecksum: c3a2f196fe8dd693b6d6914e96dab69a
+ docChecksum: 7ac99bda5530d96a93dea69622cbc790
+ docVersion: 10.9.0
+ speakeasyVersion: 1.454.2
+ generationVersion: 2.477.4
+ releaseVersion: 0.1.0
+ configChecksum: f591e4dc1c5be424bad5706db52f1b38
repoURL: https://github.com/apideck-libraries/sdk-php.git
installationURL: https://github.com/apideck-libraries/sdk-php
published: true
@@ -54,6 +54,9 @@ generatedFiles:
- docs/Models/Components/ActivityType.md
- docs/Models/Components/Address.md
- docs/Models/Components/Addresses.md
+ - docs/Models/Components/AgedCreditors.md
+ - docs/Models/Components/AgedDebtors.md
+ - docs/Models/Components/AgedReportFilter.md
- docs/Models/Components/Allocation.md
- docs/Models/Components/AllocationInput.md
- docs/Models/Components/AllocationType.md
@@ -79,6 +82,8 @@ generatedFiles:
- docs/Models/Components/AttachmentReferenceType.md
- docs/Models/Components/Audience.md
- docs/Models/Components/AuthType.md
+ - docs/Models/Components/BalanceByPeriod.md
+ - docs/Models/Components/BalanceByTransaction.md
- docs/Models/Components/BalanceSheet.md
- docs/Models/Components/BalanceSheetAssetsAccount.md
- docs/Models/Components/BalanceSheetEquityAccount.md
@@ -365,6 +370,8 @@ generatedFiles:
- docs/Models/Components/GetAccountingLocationsResponse.md
- docs/Models/Components/GetActivitiesResponse.md
- docs/Models/Components/GetActivityResponse.md
+ - docs/Models/Components/GetAgedCreditorsResponse.md
+ - docs/Models/Components/GetAgedDebtorsResponse.md
- docs/Models/Components/GetApiResourceCoverageResponse.md
- docs/Models/Components/GetApiResourceResponse.md
- docs/Models/Components/GetApiResponse.md
@@ -576,6 +583,8 @@ generatedFiles:
- docs/Models/Components/Options.md
- docs/Models/Components/OrdersSort.md
- docs/Models/Components/OrdersSortBy.md
+ - docs/Models/Components/OutstandingBalance.md
+ - docs/Models/Components/OutstandingBalanceByCurrency.md
- docs/Models/Components/Owner.md
- docs/Models/Components/PaginationCoverage.md
- docs/Models/Components/PaginationCoverageMode.md
@@ -684,6 +693,7 @@ generatedFiles:
- docs/Models/Components/TrackingCategoryStatus.md
- docs/Models/Components/TrackingCategorySubsidiaries.md
- docs/Models/Components/TrackingItem.md
+ - docs/Models/Components/TransactionType.md
- docs/Models/Components/Type.md
- docs/Models/Components/UnexpectedErrorResponse.md
- docs/Models/Components/UnifiedApi.md
@@ -767,6 +777,10 @@ generatedFiles:
- docs/Models/Errors/UnauthorizedResponseDetail.md
- docs/Models/Errors/UnprocessableResponse.md
- docs/Models/Errors/UnprocessableResponseDetail.md
+ - docs/Models/Operations/AccountingAgedCreditorsOneRequest.md
+ - docs/Models/Operations/AccountingAgedCreditorsOneResponse.md
+ - docs/Models/Operations/AccountingAgedDebtorsOneRequest.md
+ - docs/Models/Operations/AccountingAgedDebtorsOneResponse.md
- docs/Models/Operations/AccountingAttachmentsAllRequest.md
- docs/Models/Operations/AccountingAttachmentsAllResponse.md
- docs/Models/Operations/AccountingAttachmentsDeleteRequest.md
@@ -1294,6 +1308,8 @@ generatedFiles:
- docs/Models/Operations/WebhookWebhooksUpdateResponse.md
- docs/sdks/accounting/README.md
- docs/sdks/activities/README.md
+ - docs/sdks/agedcreditors/README.md
+ - docs/sdks/ageddebtors/README.md
- docs/sdks/apideck/README.md
- docs/sdks/apideckcompanies/README.md
- docs/sdks/apideckcustomers/README.md
@@ -1383,6 +1399,8 @@ generatedFiles:
- rector.php
- src/Accounting.php
- src/Activities.php
+ - src/AgedCreditors.php
+ - src/AgedDebtors.php
- src/ApiResourceCoverage.php
- src/ApiResources.php
- src/Apideck.php
@@ -1478,6 +1496,9 @@ generatedFiles:
- src/Models/Components/ActivityType.php
- src/Models/Components/Address.php
- src/Models/Components/Addresses.php
+ - src/Models/Components/AgedCreditors.php
+ - src/Models/Components/AgedDebtors.php
+ - src/Models/Components/AgedReportFilter.php
- src/Models/Components/Allocation.php
- src/Models/Components/AllocationInput.php
- src/Models/Components/AllocationType.php
@@ -1503,6 +1524,8 @@ generatedFiles:
- src/Models/Components/AttachmentReferenceType.php
- src/Models/Components/Audience.php
- src/Models/Components/AuthType.php
+ - src/Models/Components/BalanceByPeriod.php
+ - src/Models/Components/BalanceByTransaction.php
- src/Models/Components/BalanceSheet.php
- src/Models/Components/BalanceSheetAssetsAccount.php
- src/Models/Components/BalanceSheetEquityAccount.php
@@ -1785,6 +1808,8 @@ generatedFiles:
- src/Models/Components/GetAccountingLocationsResponse.php
- src/Models/Components/GetActivitiesResponse.php
- src/Models/Components/GetActivityResponse.php
+ - src/Models/Components/GetAgedCreditorsResponse.php
+ - src/Models/Components/GetAgedDebtorsResponse.php
- src/Models/Components/GetApiResourceCoverageResponse.php
- src/Models/Components/GetApiResourceResponse.php
- src/Models/Components/GetApiResponse.php
@@ -1996,6 +2021,8 @@ generatedFiles:
- src/Models/Components/Options.php
- src/Models/Components/OrdersSort.php
- src/Models/Components/OrdersSortBy.php
+ - src/Models/Components/OutstandingBalance.php
+ - src/Models/Components/OutstandingBalanceByCurrency.php
- src/Models/Components/Owner.php
- src/Models/Components/PaginationCoverage.php
- src/Models/Components/PaginationCoverageMode.php
@@ -2103,6 +2130,7 @@ generatedFiles:
- src/Models/Components/TrackingCategoryStatus.php
- src/Models/Components/TrackingCategorySubsidiaries.php
- src/Models/Components/TrackingItem.php
+ - src/Models/Components/TransactionType.php
- src/Models/Components/Type.php
- src/Models/Components/UnexpectedErrorResponse.php
- src/Models/Components/UnifiedApi.php
@@ -2186,6 +2214,10 @@ generatedFiles:
- src/Models/Errors/UnauthorizedResponseThrowable.php
- src/Models/Errors/UnprocessableResponse.php
- src/Models/Errors/UnprocessableResponseThrowable.php
+ - src/Models/Operations/AccountingAgedCreditorsOneRequest.php
+ - src/Models/Operations/AccountingAgedCreditorsOneResponse.php
+ - src/Models/Operations/AccountingAgedDebtorsOneRequest.php
+ - src/Models/Operations/AccountingAgedDebtorsOneResponse.php
- src/Models/Operations/AccountingAttachmentsAllRequest.php
- src/Models/Operations/AccountingAttachmentsAllResponse.php
- src/Models/Operations/AccountingAttachmentsDeleteRequest.php
@@ -9115,7 +9147,7 @@ examples:
"422":
application/json: {"status_code": 422, "error": "Unprocessable Entity", "type_name": "InvalidStateError", "message": "Invalid State", "detail": "Unprocessable request, please verify your request headers and body.", "ref": "https://developers.apideck.com/errors#invalidstateerror"}
default:
- application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": {"missing": [{"x-apideck-consumer-id": "required"}]}, "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
vault.createCallbackState:
"":
parameters:
@@ -9141,7 +9173,7 @@ examples:
"422":
application/json: {"status_code": 422, "error": "Unprocessable Entity", "type_name": "InvalidStateError", "message": "Invalid State", "detail": "Unprocessable request, please verify your request headers and body.", "ref": "https://developers.apideck.com/errors#invalidstateerror"}
default:
- application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": {"missing": [{"x-apideck-consumer-id": "required"}]}, "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
vault.connectionSettingsAll:
"":
parameters:
@@ -9429,4 +9461,56 @@ examples:
application/json: {"status_code": 422, "error": "Unprocessable Entity", "type_name": "InvalidStateError", "message": "Invalid State", "detail": "Unprocessable request, please verify your request headers and body.", "ref": "https://developers.apideck.com/errors#invalidstateerror"}
default:
application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ accounting.agedCreditorsOne:
+ "":
+ parameters:
+ query:
+ filter: {"customer_id": "123abc", "report_as_of_date": "2024-01-01", "period_count": 3, "period_length": 30}
+ pass_through: {"search": "San Francisco"}
+ fields: "id,updated_at"
+ header:
+ x-apideck-consumer-id: "test-consumer"
+ x-apideck-app-id: "dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"
+ x-apideck-service-id: "salesforce"
+ responses:
+ "200":
+ application/json: {"status_code": 200, "status": "OK", "service": "quickbooks", "resource": "AgedCreditors", "operation": "one", "data": {"report_generated_at": "2024-11-14T12:00:00.000Z", "report_as_of_date": "2024-11-13", "period_count": 4, "period_length": 30, "outstanding_balances": [{"customer_id": "123", "customer_name": "Super Store", "outstanding_balances_by_currency": [{"currency": "USD", "balances_by_period": [{"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}, {"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}]}, {"currency": "USD", "balances_by_period": [{"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}]}]}, {"customer_id": "123", "customer_name": "Super Store", "outstanding_balances_by_currency": [{"currency": "USD", "balances_by_period": []}]}]}}
+ "400":
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestValidationError", "message": "Invalid Params", "detail": {"missing": [{"foobar": "required"}]}, "ref": "https://developers.apideck.com/errors#requestvalidationerror"}
+ "401":
+ application/json: {"status_code": 401, "error": "Unauthorized", "type_name": "UnauthorizedError", "message": "Unauthorized Request", "detail": "Missing authentication", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ "402":
+ application/json: {"status_code": 402, "error": "Payment Required", "type_name": "RequestLimitError", "message": "Request Limit Reached", "detail": "You have reached your limit of 2000", "ref": "https://developers.apideck.com/errors#requestlimiterror"}
+ "404":
+ application/json: {"status_code": 404, "error": "Not Found", "type_name": "EntityNotFoundError", "message": "Unknown Widget", "detail": {"not_found": {"entity": "widget", "id": "123"}}, "ref": "https://developers.apideck.com/errors#entitynotfounderror"}
+ "422":
+ application/json: {"status_code": 422, "error": "Unprocessable Entity", "type_name": "InvalidStateError", "message": "Invalid State", "detail": "Unprocessable request, please verify your request headers and body.", "ref": "https://developers.apideck.com/errors#invalidstateerror"}
+ default:
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ accounting.agedDebtorsOne:
+ "":
+ parameters:
+ query:
+ filter: {"customer_id": "123abc", "report_as_of_date": "2024-01-01", "period_count": 3, "period_length": 30}
+ pass_through: {"search": "San Francisco"}
+ fields: "id,updated_at"
+ header:
+ x-apideck-consumer-id: "test-consumer"
+ x-apideck-app-id: "dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"
+ x-apideck-service-id: "salesforce"
+ responses:
+ "200":
+ application/json: {"status_code": 200, "status": "OK", "service": "quickbooks", "resource": "AgedDebtors", "operation": "one", "data": {"report_generated_at": "2024-11-14T12:00:00.000Z", "report_as_of_date": "2024-11-13", "period_count": 4, "period_length": 30, "outstanding_balances": [{"customer_id": "123", "customer_name": "Super Store", "outstanding_balances_by_currency": [{"currency": "USD", "balances_by_period": [{"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}, {"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}, {"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}]}, {"currency": "USD", "balances_by_period": [{"start_date": "2024-01-01", "end_date": "2024-01-30", "total_amount": 1500, "balances_by_transaction": [{"transaction_id": "INV-1001", "transaction_date": "2024-01-15", "transaction_type": "invoice", "due_date": "2024-02-15", "original_amount": 1000, "outstanding_balance": 800}]}]}]}, {"customer_id": "123", "customer_name": "Super Store", "outstanding_balances_by_currency": [{"currency": "USD", "balances_by_period": []}]}]}}
+ "400":
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestValidationError", "message": "Invalid Params", "detail": {"missing": [{"foobar": "required"}]}, "ref": "https://developers.apideck.com/errors#requestvalidationerror"}
+ "401":
+ application/json: {"status_code": 401, "error": "Unauthorized", "type_name": "UnauthorizedError", "message": "Unauthorized Request", "detail": "Missing authentication", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
+ "402":
+ application/json: {"status_code": 402, "error": "Payment Required", "type_name": "RequestLimitError", "message": "Request Limit Reached", "detail": "You have reached your limit of 2000", "ref": "https://developers.apideck.com/errors#requestlimiterror"}
+ "404":
+ application/json: {"status_code": 404, "error": "Not Found", "type_name": "EntityNotFoundError", "message": "Unknown Widget", "detail": {"not_found": {"entity": "widget", "id": "123"}}, "ref": "https://developers.apideck.com/errors#entitynotfounderror"}
+ "422":
+ application/json: {"status_code": 422, "error": "Unprocessable Entity", "type_name": "InvalidStateError", "message": "Invalid State", "detail": "Unprocessable request, please verify your request headers and body.", "ref": "https://developers.apideck.com/errors#invalidstateerror"}
+ default:
+ application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
generatedTests: {}
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 7b60edc..7363867 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -13,7 +13,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
php:
- version: 0.0.4
+ version: 0.1.0
additionalDependencies:
autoload: {}
autoload-dev: {}
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index f304b04..2179f8d 100644
--- a/.speakeasy/workflow.lock
+++ b/.speakeasy/workflow.lock
@@ -1,21 +1,21 @@
-speakeasyVersion: 1.454.0
+speakeasyVersion: 1.454.2
sources:
Apideck:
sourceNamespace: apideck
- sourceRevisionDigest: sha256:1c2ab08139231ee4ce3aa2e75d21f8660b997b38a72c8508f2e010f1e4f01212
- sourceBlobDigest: sha256:86718b5c608b0821aa024e8ed3a416e4347cbac957b0e241d46daf111903fdc0
+ sourceRevisionDigest: sha256:0d266eae23010b4f78aa526b207cfc91e976de1776027a7b3e857de854bd345d
+ sourceBlobDigest: sha256:a0cd86792611bf77ca36f489820781456d8f53c5080c0c67fe9e04c81af80345
tags:
- latest
- - speakeasy-sdk-regen-1733922060
- - 10.8.3
+ - speakeasy-sdk-regen-1733946806
+ - 10.9.0
targets:
apideck:
source: Apideck
sourceNamespace: apideck
- sourceRevisionDigest: sha256:1c2ab08139231ee4ce3aa2e75d21f8660b997b38a72c8508f2e010f1e4f01212
- sourceBlobDigest: sha256:86718b5c608b0821aa024e8ed3a416e4347cbac957b0e241d46daf111903fdc0
+ sourceRevisionDigest: sha256:0d266eae23010b4f78aa526b207cfc91e976de1776027a7b3e857de854bd345d
+ sourceBlobDigest: sha256:a0cd86792611bf77ca36f489820781456d8f53c5080c0c67fe9e04c81af80345
codeSamplesNamespace: apideck-php-code-samples
- codeSamplesRevisionDigest: sha256:54aa4c61991565aef222572e6c223e47e2e0c78fc8299e4db4f8c2700e435596
+ codeSamplesRevisionDigest: sha256:2b6e9ed41e97aec2ccbb98e48deefc11092c3abb9b4ae166a3d6dcc873a8d5ff
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
diff --git a/README.md b/README.md
index 1450ab7..8b286cb 100644
--- a/README.md
+++ b/README.md
@@ -103,6 +103,14 @@ if ($response->getTaxRatesResponse !== null) {
### [accounting](docs/sdks/accounting/README.md)
+#### [accounting->agedCreditors](docs/sdks/agedcreditors/README.md)
+
+* [get](docs/sdks/agedcreditors/README.md#get) - Get Aged Creditors
+
+#### [accounting->agedDebtors](docs/sdks/ageddebtors/README.md)
+
+* [get](docs/sdks/ageddebtors/README.md#get) - Get Aged Debtors
+
#### [accounting->attachments](docs/sdks/attachments/README.md)
* [list](docs/sdks/attachments/README.md#list) - List Attachments
diff --git a/RELEASES.md b/RELEASES.md
index c656f6b..70c5048 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -18,4 +18,14 @@ Based on:
### Generated
- [php v0.0.4] .
### Releases
-- [Composer v0.0.4] https://packagist.org/packages/apideck-libraries/sdk-php#v0.0.4 - .
\ No newline at end of file
+- [Composer v0.0.4] https://packagist.org/packages/apideck-libraries/sdk-php#v0.0.4 - .
+
+## 2024-12-13 00:02:14
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.454.2 (2.477.4) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [php v0.1.0] .
+### Releases
+- [Composer v0.1.0] https://packagist.org/packages/apideck-libraries/sdk-php#v0.1.0 - .
\ No newline at end of file
diff --git a/docs/Models/Components/AgedCreditors.md b/docs/Models/Components/AgedCreditors.md
new file mode 100644
index 0000000..9ceeb7f
--- /dev/null
+++ b/docs/Models/Components/AgedCreditors.md
@@ -0,0 +1,12 @@
+# AgedCreditors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `reportGeneratedAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | The exact date and time the report was generated. | 2024-11-14T12:00:00.000Z |
+| `reportAsOfDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | The cutoff date for transactions included in the report. | 2024-11-13 |
+| `periodCount` | *?int* | :heavy_minus_sign: | Number of aging periods shown in the report. | 4 |
+| `periodLength` | *?int* | :heavy_minus_sign: | Length of each aging period in days. | 30 |
+| `outstandingBalances` | array<[Components\OutstandingBalance](../../Models/Components/OutstandingBalance.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/AgedDebtors.md b/docs/Models/Components/AgedDebtors.md
new file mode 100644
index 0000000..8ed535a
--- /dev/null
+++ b/docs/Models/Components/AgedDebtors.md
@@ -0,0 +1,12 @@
+# AgedDebtors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `reportGeneratedAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | The exact date and time the report was generated. | 2024-11-14T12:00:00.000Z |
+| `reportAsOfDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | The cutoff date for transactions included in the report. | 2024-11-13 |
+| `periodCount` | *?int* | :heavy_minus_sign: | Number of aging periods shown in the report. | 4 |
+| `periodLength` | *?int* | :heavy_minus_sign: | Length of each aging period in days. | 30 |
+| `outstandingBalances` | array<[Components\OutstandingBalance](../../Models/Components/OutstandingBalance.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/AgedReportFilter.md b/docs/Models/Components/AgedReportFilter.md
new file mode 100644
index 0000000..bbe83af
--- /dev/null
+++ b/docs/Models/Components/AgedReportFilter.md
@@ -0,0 +1,11 @@
+# AgedReportFilter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- |
+| `customerId` | *?string* | :heavy_minus_sign: | Filter by customer id | 123abc |
+| `reportAsOfDate` | *?string* | :heavy_minus_sign: | The cutoff date for considering transactions | 2024-01-01 |
+| `periodCount` | *?int* | :heavy_minus_sign: | Number of periods to split the aged creditors report into | 3 |
+| `periodLength` | *?int* | :heavy_minus_sign: | Length of each period in days | 30 |
\ No newline at end of file
diff --git a/docs/Models/Components/BalanceByPeriod.md b/docs/Models/Components/BalanceByPeriod.md
new file mode 100644
index 0000000..d3f82cf
--- /dev/null
+++ b/docs/Models/Components/BalanceByPeriod.md
@@ -0,0 +1,11 @@
+# BalanceByPeriod
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `startDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | Start date of the period. | 2024-01-01 |
+| `endDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | End date of the period. | 2024-01-30 |
+| `totalAmount` | *?float* | :heavy_minus_sign: | Total amount of the period. | 1500 |
+| `balancesByTransaction` | array<[Components\BalanceByTransaction](../../Models/Components/BalanceByTransaction.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/BalanceByTransaction.md b/docs/Models/Components/BalanceByTransaction.md
new file mode 100644
index 0000000..976e13a
--- /dev/null
+++ b/docs/Models/Components/BalanceByTransaction.md
@@ -0,0 +1,13 @@
+# BalanceByTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `transactionId` | *?string* | :heavy_minus_sign: | Unique identifier for the transaction. | INV-1001 |
+| `transactionDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | Date of the transaction. | 2024-01-15 |
+| `transactionType` | [?Components\TransactionType](../../Models/Components/TransactionType.md) | :heavy_minus_sign: | Type of the transaction. | invoice |
+| `dueDate` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | Due date of the transaction. | 2024-02-15 |
+| `originalAmount` | *?float* | :heavy_minus_sign: | Original amount of the transaction. | 1000 |
+| `outstandingBalance` | *?float* | :heavy_minus_sign: | Outstanding balance of the transaction. | 800 |
\ No newline at end of file
diff --git a/docs/Models/Components/GetAgedCreditorsResponse.md b/docs/Models/Components/GetAgedCreditorsResponse.md
new file mode 100644
index 0000000..f0bed77
--- /dev/null
+++ b/docs/Models/Components/GetAgedCreditorsResponse.md
@@ -0,0 +1,15 @@
+# GetAgedCreditorsResponse
+
+Aged Creditors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `statusCode` | *int* | :heavy_check_mark: | HTTP Response Status Code | 200 |
+| `status` | *string* | :heavy_check_mark: | HTTP Response Status | OK |
+| `service` | *string* | :heavy_check_mark: | Apideck ID of service provider | quickbooks |
+| `resource` | *string* | :heavy_check_mark: | Unified API resource name | AgedCreditors |
+| `operation` | *string* | :heavy_check_mark: | Operation performed | one |
+| `data` | [Components\AgedCreditors](../../Models/Components/AgedCreditors.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/GetAgedDebtorsResponse.md b/docs/Models/Components/GetAgedDebtorsResponse.md
new file mode 100644
index 0000000..b565e78
--- /dev/null
+++ b/docs/Models/Components/GetAgedDebtorsResponse.md
@@ -0,0 +1,15 @@
+# GetAgedDebtorsResponse
+
+Aged Debtors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `statusCode` | *int* | :heavy_check_mark: | HTTP Response Status Code | 200 |
+| `status` | *string* | :heavy_check_mark: | HTTP Response Status | OK |
+| `service` | *string* | :heavy_check_mark: | Apideck ID of service provider | quickbooks |
+| `resource` | *string* | :heavy_check_mark: | Unified API resource name | AgedDebtors |
+| `operation` | *string* | :heavy_check_mark: | Operation performed | one |
+| `data` | [Components\AgedDebtors](../../Models/Components/AgedDebtors.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/OutstandingBalance.md b/docs/Models/Components/OutstandingBalance.md
new file mode 100644
index 0000000..33634ce
--- /dev/null
+++ b/docs/Models/Components/OutstandingBalance.md
@@ -0,0 +1,10 @@
+# OutstandingBalance
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `customerId` | *?string* | :heavy_minus_sign: | Unique identifier for the customer or supplier. | 123 |
+| `customerName` | *?string* | :heavy_minus_sign: | Full name of the customer or supplier. | Super Store |
+| `outstandingBalancesByCurrency` | array<[Components\OutstandingBalanceByCurrency](../../Models/Components/OutstandingBalanceByCurrency.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/Models/Components/OutstandingBalanceByCurrency.md b/docs/Models/Components/OutstandingBalanceByCurrency.md
new file mode 100644
index 0000000..8157a85
--- /dev/null
+++ b/docs/Models/Components/OutstandingBalanceByCurrency.md
@@ -0,0 +1,9 @@
+# OutstandingBalanceByCurrency
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| `balancesByPeriod` | array<[Components\BalanceByPeriod](../../Models/Components/BalanceByPeriod.md)> | :heavy_minus_sign: | N/A | |
+| `currency` | [?Components\Currency](../../Models/Components/Currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
\ No newline at end of file
diff --git a/docs/Models/Components/TransactionType.md b/docs/Models/Components/TransactionType.md
new file mode 100644
index 0000000..a082d1f
--- /dev/null
+++ b/docs/Models/Components/TransactionType.md
@@ -0,0 +1,14 @@
+# TransactionType
+
+Type of the transaction.
+
+
+## Values
+
+| Name | Value |
+| ------------- | ------------- |
+| `Invoice` | invoice |
+| `CreditNote` | credit_note |
+| `Bill` | bill |
+| `Payment` | payment |
+| `BillPayment` | bill-payment |
\ No newline at end of file
diff --git a/docs/Models/Operations/AccountingAgedCreditorsOneRequest.md b/docs/Models/Operations/AccountingAgedCreditorsOneRequest.md
new file mode 100644
index 0000000..49def0e
--- /dev/null
+++ b/docs/Models/Operations/AccountingAgedCreditorsOneRequest.md
@@ -0,0 +1,14 @@
+# AccountingAgedCreditorsOneRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `raw` | *?bool* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
+| `consumerId` | *?string* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
+| `appId` | *?string* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
+| `serviceId` | *?string* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
+| `filter` | [?Components\AgedReportFilter](../../Models/Components/AgedReportFilter.md) | :heavy_minus_sign: | Apply filters | {
"customer_id": "123abc",
"report_as_of_date": "2024-01-01",
"period_count": 3,
"period_length": 30
} |
+| `passThrough` | array | :heavy_minus_sign: | Optional unmapped key/values that will be passed through to downstream as query parameters. Ie: ?pass_through[search]=leads becomes ?search=leads | {
"search": "San Francisco"
} |
+| `fields` | *?string* | :heavy_minus_sign: | The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation.
Example: `fields=name,email,addresses.city`
In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded. | id,updated_at |
\ No newline at end of file
diff --git a/docs/Models/Operations/AccountingAgedCreditorsOneResponse.md b/docs/Models/Operations/AccountingAgedCreditorsOneResponse.md
new file mode 100644
index 0000000..bc884c2
--- /dev/null
+++ b/docs/Models/Operations/AccountingAgedCreditorsOneResponse.md
@@ -0,0 +1,12 @@
+# AccountingAgedCreditorsOneResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `getAgedCreditorsResponse` | [?Components\GetAgedCreditorsResponse](../../Models/Components/GetAgedCreditorsResponse.md) | :heavy_minus_sign: | Aged Creditors |
+| `unexpectedErrorResponse` | [?Components\UnexpectedErrorResponse](../../Models/Components/UnexpectedErrorResponse.md) | :heavy_minus_sign: | Unexpected error |
\ No newline at end of file
diff --git a/docs/Models/Operations/AccountingAgedDebtorsOneRequest.md b/docs/Models/Operations/AccountingAgedDebtorsOneRequest.md
new file mode 100644
index 0000000..c29e649
--- /dev/null
+++ b/docs/Models/Operations/AccountingAgedDebtorsOneRequest.md
@@ -0,0 +1,14 @@
+# AccountingAgedDebtorsOneRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `raw` | *?bool* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
+| `consumerId` | *?string* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
+| `appId` | *?string* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
+| `serviceId` | *?string* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
+| `filter` | [?Components\AgedReportFilter](../../Models/Components/AgedReportFilter.md) | :heavy_minus_sign: | Apply filters | {
"customer_id": "123abc",
"report_as_of_date": "2024-01-01",
"period_count": 3,
"period_length": 30
} |
+| `passThrough` | array | :heavy_minus_sign: | Optional unmapped key/values that will be passed through to downstream as query parameters. Ie: ?pass_through[search]=leads becomes ?search=leads | {
"search": "San Francisco"
} |
+| `fields` | *?string* | :heavy_minus_sign: | The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation.
Example: `fields=name,email,addresses.city`
In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded. | id,updated_at |
\ No newline at end of file
diff --git a/docs/Models/Operations/AccountingAgedDebtorsOneResponse.md b/docs/Models/Operations/AccountingAgedDebtorsOneResponse.md
new file mode 100644
index 0000000..81154bc
--- /dev/null
+++ b/docs/Models/Operations/AccountingAgedDebtorsOneResponse.md
@@ -0,0 +1,12 @@
+# AccountingAgedDebtorsOneResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `getAgedDebtorsResponse` | [?Components\GetAgedDebtorsResponse](../../Models/Components/GetAgedDebtorsResponse.md) | :heavy_minus_sign: | Aged Debtors |
+| `unexpectedErrorResponse` | [?Components\UnexpectedErrorResponse](../../Models/Components/UnexpectedErrorResponse.md) | :heavy_minus_sign: | Unexpected error |
\ No newline at end of file
diff --git a/docs/sdks/agedcreditors/README.md b/docs/sdks/agedcreditors/README.md
new file mode 100644
index 0000000..0ac523e
--- /dev/null
+++ b/docs/sdks/agedcreditors/README.md
@@ -0,0 +1,74 @@
+# AgedCreditors
+(*accounting->agedCreditors*)
+
+## Overview
+
+### Available Operations
+
+* [get](#get) - Get Aged Creditors
+
+## get
+
+Get Aged Creditors
+
+### Example Usage
+
+```php
+declare(strict_types=1);
+
+require 'vendor/autoload.php';
+
+use Apideck\Unify;
+use Apideck\Unify\Models\Components;
+use Apideck\Unify\Models\Operations;
+
+$security = '';
+
+$sdk = Unify\Apideck::builder()
+ ->setConsumerId('test-consumer')
+ ->setAppId('dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX')
+ ->setSecurity($security)->build();
+
+$request = new Operations\AccountingAgedCreditorsOneRequest(
+ serviceId: 'salesforce',
+ filter: new Components\AgedReportFilter(
+ customerId: '123abc',
+ reportAsOfDate: '2024-01-01',
+ periodCount: 3,
+ periodLength: 30,
+ ),
+ passThrough: [
+ 'search' => 'San Francisco',
+ ],
+ fields: 'id,updated_at',
+);
+
+$response = $sdk->accounting->agedCreditors->get(
+ request: $request
+);
+
+if ($response->getAgedCreditorsResponse !== null) {
+ // handle response
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `$request` | [Operations\AccountingAgedCreditorsOneRequest](../../Models/Operations/AccountingAgedCreditorsOneRequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+### Response
+
+**[?Operations\AccountingAgedCreditorsOneResponse](../../Models/Operations/AccountingAgedCreditorsOneResponse.md)**
+
+### Errors
+
+| Error Type | Status Code | Content Type |
+| ------------------------------ | ------------------------------ | ------------------------------ |
+| Errors\BadRequestResponse | 400 | application/json |
+| Errors\UnauthorizedResponse | 401 | application/json |
+| Errors\PaymentRequiredResponse | 402 | application/json |
+| Errors\NotFoundResponse | 404 | application/json |
+| Errors\UnprocessableResponse | 422 | application/json |
+| Errors\APIException | 4XX, 5XX | \*/\* |
\ No newline at end of file
diff --git a/docs/sdks/ageddebtors/README.md b/docs/sdks/ageddebtors/README.md
new file mode 100644
index 0000000..393941c
--- /dev/null
+++ b/docs/sdks/ageddebtors/README.md
@@ -0,0 +1,74 @@
+# AgedDebtors
+(*accounting->agedDebtors*)
+
+## Overview
+
+### Available Operations
+
+* [get](#get) - Get Aged Debtors
+
+## get
+
+Get Aged Debtors
+
+### Example Usage
+
+```php
+declare(strict_types=1);
+
+require 'vendor/autoload.php';
+
+use Apideck\Unify;
+use Apideck\Unify\Models\Components;
+use Apideck\Unify\Models\Operations;
+
+$security = '';
+
+$sdk = Unify\Apideck::builder()
+ ->setConsumerId('test-consumer')
+ ->setAppId('dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX')
+ ->setSecurity($security)->build();
+
+$request = new Operations\AccountingAgedDebtorsOneRequest(
+ serviceId: 'salesforce',
+ filter: new Components\AgedReportFilter(
+ customerId: '123abc',
+ reportAsOfDate: '2024-01-01',
+ periodCount: 3,
+ periodLength: 30,
+ ),
+ passThrough: [
+ 'search' => 'San Francisco',
+ ],
+ fields: 'id,updated_at',
+);
+
+$response = $sdk->accounting->agedDebtors->get(
+ request: $request
+);
+
+if ($response->getAgedDebtorsResponse !== null) {
+ // handle response
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `$request` | [Operations\AccountingAgedDebtorsOneRequest](../../Models/Operations/AccountingAgedDebtorsOneRequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+### Response
+
+**[?Operations\AccountingAgedDebtorsOneResponse](../../Models/Operations/AccountingAgedDebtorsOneResponse.md)**
+
+### Errors
+
+| Error Type | Status Code | Content Type |
+| ------------------------------ | ------------------------------ | ------------------------------ |
+| Errors\BadRequestResponse | 400 | application/json |
+| Errors\UnauthorizedResponse | 401 | application/json |
+| Errors\PaymentRequiredResponse | 402 | application/json |
+| Errors\NotFoundResponse | 404 | application/json |
+| Errors\UnprocessableResponse | 422 | application/json |
+| Errors\APIException | 4XX, 5XX | \*/\* |
\ No newline at end of file
diff --git a/src/Accounting.php b/src/Accounting.php
index 4de8eec..7d20056 100644
--- a/src/Accounting.php
+++ b/src/Accounting.php
@@ -55,6 +55,10 @@ class Accounting
public Expenses $expenses;
+ public AgedCreditors $agedCreditors;
+
+ public AgedDebtors $agedDebtors;
+
/**
* @param SDKConfiguration $sdkConfig
*/
@@ -82,6 +86,8 @@ public function __construct(public SDKConfiguration $sdkConfig)
$this->trackingCategories = new TrackingCategories($this->sdkConfiguration);
$this->billPayments = new BillPayments($this->sdkConfiguration);
$this->expenses = new Expenses($this->sdkConfiguration);
+ $this->agedCreditors = new AgedCreditors($this->sdkConfiguration);
+ $this->agedDebtors = new AgedDebtors($this->sdkConfiguration);
}
/**
* @param string $baseUrl
diff --git a/src/AgedCreditors.php b/src/AgedCreditors.php
new file mode 100644
index 0000000..e2a4332
--- /dev/null
+++ b/src/AgedCreditors.php
@@ -0,0 +1,186 @@
+sdkConfiguration = $sdkConfig;
+ }
+ /**
+ * @param string $baseUrl
+ * @param array $urlVariables
+ *
+ * @return string
+ */
+ public function getUrl(string $baseUrl, array $urlVariables): string
+ {
+ $serverDetails = $this->sdkConfiguration->getServerDetails();
+
+ if ($baseUrl == null) {
+ $baseUrl = $serverDetails->baseUrl;
+ }
+
+ if ($urlVariables == null) {
+ $urlVariables = $serverDetails->options;
+ }
+
+ return Utils\Utils::templateUrl($baseUrl, $urlVariables);
+ }
+
+ /**
+ * Get Aged Creditors
+ *
+ * Get Aged Creditors
+ *
+ * @param ?Operations\AccountingAgedCreditorsOneRequest $request
+ * @return Operations\AccountingAgedCreditorsOneResponse
+ * @throws \Apideck\Unify\Models\Errors\APIException
+ */
+ public function get(?Operations\AccountingAgedCreditorsOneRequest $request = null): Operations\AccountingAgedCreditorsOneResponse
+ {
+ $baseUrl = $this->sdkConfiguration->getServerUrl();
+ $url = Utils\Utils::generateUrl($baseUrl, '/accounting/aged-creditors');
+ $urlOverride = null;
+ $options = ['http_errors' => false];
+
+ $qp = Utils\Utils::getQueryParams(Operations\AccountingAgedCreditorsOneRequest::class, $request, $urlOverride, $this->sdkConfiguration->globals);
+ $options = array_merge_recursive($options, Utils\Utils::getHeaders($request, $this->sdkConfiguration->globals));
+ if (! array_key_exists('headers', $options)) {
+ $options['headers'] = [];
+ }
+ $options['headers']['Accept'] = 'application/json';
+ $options['headers']['user-agent'] = $this->sdkConfiguration->userAgent;
+ $httpRequest = new \GuzzleHttp\Psr7\Request('GET', $url);
+ $hookContext = new HookContext('accounting.agedCreditorsOne', null, $this->sdkConfiguration->securitySource);
+ $httpRequest = $this->sdkConfiguration->hooks->beforeRequest(new Hooks\BeforeRequestContext($hookContext), $httpRequest);
+ $options['query'] = Utils\QueryParameters::standardizeQueryParams($httpRequest, $qp);
+ $options = Utils\Utils::convertHeadersToOptions($httpRequest, $options);
+ $httpRequest = Utils\Utils::removeHeaders($httpRequest);
+ try {
+ $httpResponse = $this->sdkConfiguration->client->send($httpRequest, $options);
+ } catch (\GuzzleHttp\Exception\GuzzleException $error) {
+ $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), null, $error);
+ if ($res !== null) {
+ $httpResponse = $res;
+ }
+ }
+ $contentType = $httpResponse->getHeader('Content-Type')[0] ?? '';
+
+ $statusCode = $httpResponse->getStatusCode();
+ if ($statusCode == 400 || $statusCode == 401 || $statusCode == 402 || $statusCode == 404 || $statusCode == 422 || $statusCode >= 400 && $statusCode < 500 || $statusCode >= 500 && $statusCode < 600) {
+ $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), $httpResponse, null);
+ if ($res !== null) {
+ $httpResponse = $res;
+ }
+ }
+ if ($statusCode == 200) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Components\GetAgedCreditorsResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ $response = new Operations\AccountingAgedCreditorsOneResponse(
+ statusCode: $statusCode,
+ contentType: $contentType,
+ rawResponse: $httpResponse,
+ getAgedCreditorsResponse: $obj);
+
+ return $response;
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 400) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\BadRequestResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 401) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\UnauthorizedResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 402) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\PaymentRequiredResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 404) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\NotFoundResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 422) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\UnprocessableResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode >= 400 && $statusCode < 500 || $statusCode >= 500 && $statusCode < 600) {
+ throw new \Apideck\Unify\Models\Errors\APIException('API error occurred', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ } else {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Components\UnexpectedErrorResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ $response = new Operations\AccountingAgedCreditorsOneResponse(
+ statusCode: $statusCode,
+ contentType: $contentType,
+ rawResponse: $httpResponse,
+ unexpectedErrorResponse: $obj);
+
+ return $response;
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/AgedDebtors.php b/src/AgedDebtors.php
new file mode 100644
index 0000000..6b3899e
--- /dev/null
+++ b/src/AgedDebtors.php
@@ -0,0 +1,186 @@
+sdkConfiguration = $sdkConfig;
+ }
+ /**
+ * @param string $baseUrl
+ * @param array $urlVariables
+ *
+ * @return string
+ */
+ public function getUrl(string $baseUrl, array $urlVariables): string
+ {
+ $serverDetails = $this->sdkConfiguration->getServerDetails();
+
+ if ($baseUrl == null) {
+ $baseUrl = $serverDetails->baseUrl;
+ }
+
+ if ($urlVariables == null) {
+ $urlVariables = $serverDetails->options;
+ }
+
+ return Utils\Utils::templateUrl($baseUrl, $urlVariables);
+ }
+
+ /**
+ * Get Aged Debtors
+ *
+ * Get Aged Debtors
+ *
+ * @param ?Operations\AccountingAgedDebtorsOneRequest $request
+ * @return Operations\AccountingAgedDebtorsOneResponse
+ * @throws \Apideck\Unify\Models\Errors\APIException
+ */
+ public function get(?Operations\AccountingAgedDebtorsOneRequest $request = null): Operations\AccountingAgedDebtorsOneResponse
+ {
+ $baseUrl = $this->sdkConfiguration->getServerUrl();
+ $url = Utils\Utils::generateUrl($baseUrl, '/accounting/aged-debtors');
+ $urlOverride = null;
+ $options = ['http_errors' => false];
+
+ $qp = Utils\Utils::getQueryParams(Operations\AccountingAgedDebtorsOneRequest::class, $request, $urlOverride, $this->sdkConfiguration->globals);
+ $options = array_merge_recursive($options, Utils\Utils::getHeaders($request, $this->sdkConfiguration->globals));
+ if (! array_key_exists('headers', $options)) {
+ $options['headers'] = [];
+ }
+ $options['headers']['Accept'] = 'application/json';
+ $options['headers']['user-agent'] = $this->sdkConfiguration->userAgent;
+ $httpRequest = new \GuzzleHttp\Psr7\Request('GET', $url);
+ $hookContext = new HookContext('accounting.agedDebtorsOne', null, $this->sdkConfiguration->securitySource);
+ $httpRequest = $this->sdkConfiguration->hooks->beforeRequest(new Hooks\BeforeRequestContext($hookContext), $httpRequest);
+ $options['query'] = Utils\QueryParameters::standardizeQueryParams($httpRequest, $qp);
+ $options = Utils\Utils::convertHeadersToOptions($httpRequest, $options);
+ $httpRequest = Utils\Utils::removeHeaders($httpRequest);
+ try {
+ $httpResponse = $this->sdkConfiguration->client->send($httpRequest, $options);
+ } catch (\GuzzleHttp\Exception\GuzzleException $error) {
+ $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), null, $error);
+ if ($res !== null) {
+ $httpResponse = $res;
+ }
+ }
+ $contentType = $httpResponse->getHeader('Content-Type')[0] ?? '';
+
+ $statusCode = $httpResponse->getStatusCode();
+ if ($statusCode == 400 || $statusCode == 401 || $statusCode == 402 || $statusCode == 404 || $statusCode == 422 || $statusCode >= 400 && $statusCode < 500 || $statusCode >= 500 && $statusCode < 600) {
+ $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), $httpResponse, null);
+ if ($res !== null) {
+ $httpResponse = $res;
+ }
+ }
+ if ($statusCode == 200) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Components\GetAgedDebtorsResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ $response = new Operations\AccountingAgedDebtorsOneResponse(
+ statusCode: $statusCode,
+ contentType: $contentType,
+ rawResponse: $httpResponse,
+ getAgedDebtorsResponse: $obj);
+
+ return $response;
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 400) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\BadRequestResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 401) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\UnauthorizedResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 402) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\PaymentRequiredResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 404) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\NotFoundResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode == 422) {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Errors\UnprocessableResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ throw $obj->toException();
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ } elseif ($statusCode >= 400 && $statusCode < 500 || $statusCode >= 500 && $statusCode < 600) {
+ throw new \Apideck\Unify\Models\Errors\APIException('API error occurred', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ } else {
+ if (Utils\Utils::matchContentType($contentType, 'application/json')) {
+ $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse);
+
+ $serializer = Utils\JSON::createSerializer();
+ $responseData = (string) $httpResponse->getBody();
+ $obj = $serializer->deserialize($responseData, '\Apideck\Unify\Models\Components\UnexpectedErrorResponse', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true));
+ $response = new Operations\AccountingAgedDebtorsOneResponse(
+ statusCode: $statusCode,
+ contentType: $contentType,
+ rawResponse: $httpResponse,
+ unexpectedErrorResponse: $obj);
+
+ return $response;
+ } else {
+ throw new \Apideck\Unify\Models\Errors\APIException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse);
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/Models/Components/AgedCreditors.php b/src/Models/Components/AgedCreditors.php
new file mode 100644
index 0000000..cf10493
--- /dev/null
+++ b/src/Models/Components/AgedCreditors.php
@@ -0,0 +1,75 @@
+ $outstandingBalances
+ */
+ #[\Speakeasy\Serializer\Annotation\SerializedName('outstanding_balances')]
+ #[\Speakeasy\Serializer\Annotation\Type('array<\Apideck\Unify\Models\Components\OutstandingBalance>|null')]
+ #[\Speakeasy\Serializer\Annotation\SkipWhenNull]
+ public ?array $outstandingBalances = null;
+
+ /**
+ * @param ?\DateTime $reportGeneratedAt
+ * @param ?LocalDate $reportAsOfDate
+ * @param ?int $periodCount
+ * @param ?int $periodLength
+ * @param ?array $outstandingBalances
+ */
+ public function __construct(?\DateTime $reportGeneratedAt = null, ?LocalDate $reportAsOfDate = null, ?array $outstandingBalances = null, ?int $periodCount = 4, ?int $periodLength = 30)
+ {
+ $this->reportGeneratedAt = $reportGeneratedAt;
+ $this->reportAsOfDate = $reportAsOfDate;
+ $this->periodCount = $periodCount;
+ $this->periodLength = $periodLength;
+ $this->outstandingBalances = $outstandingBalances;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/AgedDebtors.php b/src/Models/Components/AgedDebtors.php
new file mode 100644
index 0000000..b056ecf
--- /dev/null
+++ b/src/Models/Components/AgedDebtors.php
@@ -0,0 +1,75 @@
+ $outstandingBalances
+ */
+ #[\Speakeasy\Serializer\Annotation\SerializedName('outstanding_balances')]
+ #[\Speakeasy\Serializer\Annotation\Type('array<\Apideck\Unify\Models\Components\OutstandingBalance>|null')]
+ #[\Speakeasy\Serializer\Annotation\SkipWhenNull]
+ public ?array $outstandingBalances = null;
+
+ /**
+ * @param ?\DateTime $reportGeneratedAt
+ * @param ?LocalDate $reportAsOfDate
+ * @param ?int $periodCount
+ * @param ?int $periodLength
+ * @param ?array $outstandingBalances
+ */
+ public function __construct(?\DateTime $reportGeneratedAt = null, ?LocalDate $reportAsOfDate = null, ?array $outstandingBalances = null, ?int $periodCount = 4, ?int $periodLength = 30)
+ {
+ $this->reportGeneratedAt = $reportGeneratedAt;
+ $this->reportAsOfDate = $reportAsOfDate;
+ $this->periodCount = $periodCount;
+ $this->periodLength = $periodLength;
+ $this->outstandingBalances = $outstandingBalances;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/AgedReportFilter.php b/src/Models/Components/AgedReportFilter.php
new file mode 100644
index 0000000..bd28201
--- /dev/null
+++ b/src/Models/Components/AgedReportFilter.php
@@ -0,0 +1,59 @@
+customerId = $customerId;
+ $this->reportAsOfDate = $reportAsOfDate;
+ $this->periodCount = $periodCount;
+ $this->periodLength = $periodLength;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/BalanceByPeriod.php b/src/Models/Components/BalanceByPeriod.php
new file mode 100644
index 0000000..204d2f3
--- /dev/null
+++ b/src/Models/Components/BalanceByPeriod.php
@@ -0,0 +1,64 @@
+ $balancesByTransaction
+ */
+ #[\Speakeasy\Serializer\Annotation\SerializedName('balances_by_transaction')]
+ #[\Speakeasy\Serializer\Annotation\Type('array<\Apideck\Unify\Models\Components\BalanceByTransaction>|null')]
+ #[\Speakeasy\Serializer\Annotation\SkipWhenNull]
+ public ?array $balancesByTransaction = null;
+
+ /**
+ * @param ?LocalDate $startDate
+ * @param ?LocalDate $endDate
+ * @param ?float $totalAmount
+ * @param ?array $balancesByTransaction
+ */
+ public function __construct(?LocalDate $startDate = null, ?LocalDate $endDate = null, ?float $totalAmount = null, ?array $balancesByTransaction = null)
+ {
+ $this->startDate = $startDate;
+ $this->endDate = $endDate;
+ $this->totalAmount = $totalAmount;
+ $this->balancesByTransaction = $balancesByTransaction;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/BalanceByTransaction.php b/src/Models/Components/BalanceByTransaction.php
new file mode 100644
index 0000000..5ca93a9
--- /dev/null
+++ b/src/Models/Components/BalanceByTransaction.php
@@ -0,0 +1,86 @@
+transactionId = $transactionId;
+ $this->transactionDate = $transactionDate;
+ $this->transactionType = $transactionType;
+ $this->dueDate = $dueDate;
+ $this->originalAmount = $originalAmount;
+ $this->outstandingBalance = $outstandingBalance;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/GetAgedCreditorsResponse.php b/src/Models/Components/GetAgedCreditorsResponse.php
new file mode 100644
index 0000000..72405e0
--- /dev/null
+++ b/src/Models/Components/GetAgedCreditorsResponse.php
@@ -0,0 +1,80 @@
+statusCode = $statusCode;
+ $this->status = $status;
+ $this->service = $service;
+ $this->resource = $resource;
+ $this->operation = $operation;
+ $this->data = $data;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/GetAgedDebtorsResponse.php b/src/Models/Components/GetAgedDebtorsResponse.php
new file mode 100644
index 0000000..38e6856
--- /dev/null
+++ b/src/Models/Components/GetAgedDebtorsResponse.php
@@ -0,0 +1,80 @@
+statusCode = $statusCode;
+ $this->status = $status;
+ $this->service = $service;
+ $this->resource = $resource;
+ $this->operation = $operation;
+ $this->data = $data;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/OutstandingBalance.php b/src/Models/Components/OutstandingBalance.php
new file mode 100644
index 0000000..07ce8d2
--- /dev/null
+++ b/src/Models/Components/OutstandingBalance.php
@@ -0,0 +1,53 @@
+ $outstandingBalancesByCurrency
+ */
+ #[\Speakeasy\Serializer\Annotation\SerializedName('outstanding_balances_by_currency')]
+ #[\Speakeasy\Serializer\Annotation\Type('array<\Apideck\Unify\Models\Components\OutstandingBalanceByCurrency>|null')]
+ #[\Speakeasy\Serializer\Annotation\SkipWhenNull]
+ public ?array $outstandingBalancesByCurrency = null;
+
+ /**
+ * @param ?string $customerId
+ * @param ?string $customerName
+ * @param ?array $outstandingBalancesByCurrency
+ */
+ public function __construct(?string $customerId = null, ?string $customerName = null, ?array $outstandingBalancesByCurrency = null)
+ {
+ $this->customerId = $customerId;
+ $this->customerName = $customerName;
+ $this->outstandingBalancesByCurrency = $outstandingBalancesByCurrency;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/OutstandingBalanceByCurrency.php b/src/Models/Components/OutstandingBalanceByCurrency.php
new file mode 100644
index 0000000..00fb8fd
--- /dev/null
+++ b/src/Models/Components/OutstandingBalanceByCurrency.php
@@ -0,0 +1,43 @@
+ $balancesByPeriod
+ */
+ #[\Speakeasy\Serializer\Annotation\SerializedName('balances_by_period')]
+ #[\Speakeasy\Serializer\Annotation\Type('array<\Apideck\Unify\Models\Components\BalanceByPeriod>|null')]
+ #[\Speakeasy\Serializer\Annotation\SkipWhenNull]
+ public ?array $balancesByPeriod = null;
+
+ /**
+ * @param ?array $balancesByPeriod
+ * @param ?Currency $currency
+ */
+ public function __construct(?array $balancesByPeriod = null, ?Currency $currency = null)
+ {
+ $this->balancesByPeriod = $balancesByPeriod;
+ $this->currency = $currency;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Components/TransactionType.php b/src/Models/Components/TransactionType.php
new file mode 100644
index 0000000..d5324d9
--- /dev/null
+++ b/src/Models/Components/TransactionType.php
@@ -0,0 +1,20 @@
+ $passThrough
+ */
+ #[SpeakeasyMetadata('queryParam:style=deepObject,explode=true,name=pass_through')]
+ public ?array $passThrough = null;
+
+ /**
+ * The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation.
Example: `fields=name,email,addresses.city`
In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded.
+ *
+ * @var ?string $fields
+ */
+ #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=fields')]
+ public ?string $fields = null;
+
+ /**
+ * @param ?bool $raw
+ * @param ?string $consumerId
+ * @param ?string $appId
+ * @param ?string $serviceId
+ * @param ?Components\AgedReportFilter $filter
+ * @param ?array $passThrough
+ * @param ?string $fields
+ */
+ public function __construct(?string $consumerId = null, ?string $appId = null, ?string $serviceId = null, ?Components\AgedReportFilter $filter = null, ?array $passThrough = null, ?string $fields = null, ?bool $raw = false)
+ {
+ $this->raw = $raw;
+ $this->consumerId = $consumerId;
+ $this->appId = $appId;
+ $this->serviceId = $serviceId;
+ $this->filter = $filter;
+ $this->passThrough = $passThrough;
+ $this->fields = $fields;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Operations/AccountingAgedCreditorsOneResponse.php b/src/Models/Operations/AccountingAgedCreditorsOneResponse.php
new file mode 100644
index 0000000..47f99d0
--- /dev/null
+++ b/src/Models/Operations/AccountingAgedCreditorsOneResponse.php
@@ -0,0 +1,64 @@
+contentType = $contentType;
+ $this->statusCode = $statusCode;
+ $this->rawResponse = $rawResponse;
+ $this->getAgedCreditorsResponse = $getAgedCreditorsResponse;
+ $this->unexpectedErrorResponse = $unexpectedErrorResponse;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Operations/AccountingAgedDebtorsOneRequest.php b/src/Models/Operations/AccountingAgedDebtorsOneRequest.php
new file mode 100644
index 0000000..cee31b0
--- /dev/null
+++ b/src/Models/Operations/AccountingAgedDebtorsOneRequest.php
@@ -0,0 +1,90 @@
+ $passThrough
+ */
+ #[SpeakeasyMetadata('queryParam:style=deepObject,explode=true,name=pass_through')]
+ public ?array $passThrough = null;
+
+ /**
+ * The 'fields' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation.
Example: `fields=name,email,addresses.city`
In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded.
+ *
+ * @var ?string $fields
+ */
+ #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=fields')]
+ public ?string $fields = null;
+
+ /**
+ * @param ?bool $raw
+ * @param ?string $consumerId
+ * @param ?string $appId
+ * @param ?string $serviceId
+ * @param ?Components\AgedReportFilter $filter
+ * @param ?array $passThrough
+ * @param ?string $fields
+ */
+ public function __construct(?string $consumerId = null, ?string $appId = null, ?string $serviceId = null, ?Components\AgedReportFilter $filter = null, ?array $passThrough = null, ?string $fields = null, ?bool $raw = false)
+ {
+ $this->raw = $raw;
+ $this->consumerId = $consumerId;
+ $this->appId = $appId;
+ $this->serviceId = $serviceId;
+ $this->filter = $filter;
+ $this->passThrough = $passThrough;
+ $this->fields = $fields;
+ }
+}
\ No newline at end of file
diff --git a/src/Models/Operations/AccountingAgedDebtorsOneResponse.php b/src/Models/Operations/AccountingAgedDebtorsOneResponse.php
new file mode 100644
index 0000000..e98e2ab
--- /dev/null
+++ b/src/Models/Operations/AccountingAgedDebtorsOneResponse.php
@@ -0,0 +1,64 @@
+contentType = $contentType;
+ $this->statusCode = $statusCode;
+ $this->rawResponse = $rawResponse;
+ $this->getAgedDebtorsResponse = $getAgedDebtorsResponse;
+ $this->unexpectedErrorResponse = $unexpectedErrorResponse;
+ }
+}
\ No newline at end of file
diff --git a/src/SDKConfiguration.php b/src/SDKConfiguration.php
index 19f8859..f41ebd5 100644
--- a/src/SDKConfiguration.php
+++ b/src/SDKConfiguration.php
@@ -24,13 +24,13 @@ class SDKConfiguration
public string $language = 'php';
- public string $openapiDocVersion = '10.8.3';
+ public string $openapiDocVersion = '10.9.0';
- public string $sdkVersion = '0.0.4';
+ public string $sdkVersion = '0.1.0';
- public string $genVersion = '2.477.0';
+ public string $genVersion = '2.477.4';
- public string $userAgent = 'speakeasy-sdk/php 0.0.4 2.477.0 10.8.3 apideck-libraries/sdk-php';
+ public string $userAgent = 'speakeasy-sdk/php 0.1.0 2.477.4 10.9.0 apideck-libraries/sdk-php';
/** @var array>> */
public ?array $globals = [
'parameters' => [],