v1.0.0
As part of an ongoing effort to improve the consistency and usability of our SDKs, we’ve updated the SDK generation process. This update introduces breaking changes to the SDK. All breaking changes affect only method signatures and namespacing, not core record types or properties. SDK initialization, configuration, business logic, and workflows remain unchanged. For more information on precise method signatures and example usage, please see the SDK reference on GitHub.
Type namespace consolidated
All type classes have moved from per-resource Types/ namespaces into a single Payabli\Types\ namespace. Every use statement for a type class needs updating. Payabli\<Resource>\Requests\ namespaces are unchanged.
Removed per-resource type namespaces
Guzzle must be added explicitly
The SDK no longer bundles an HTTP client. Add guzzlehttp/guzzle: ^7.4 to your project’s composer.json to satisfy the PSR-18 requirement.
Request wrapper types removed
The following body wrapper types are deleted. Their fields are now direct constructor arguments on the parent request class.
Removed types and their replacements
The MoneyOutTypesRequestOutAuthorize type is also renamed to RequestOutAuthorize (in Payabli\MoneyOut\Requests\).
Five types moved from Types\ to Requests\
These classes moved from a Types namespace to the Requests namespace of their resource:
Moved types
New typed enums for method and terms fields
PayMethodCredit::$method, RequestCreditPaymentMethod::$method, and BillOutData::$terms are now typed enums. Raw strings still work at runtime but will fail static analysis.
Enum details
Boarding type renames
ApplicationDataPayInServicesAch → AchSetup, ApplicationDataPayInServicesCard → CardSetup, ApplicationDataPayInContactsItem → Contacts, ApplicationDataPayInOwnershipItem → Owners. All now in Payabli\Types\.
BillOutData::$vendor type changed
Type changed from ?VendorData to ?BillOutDataVendor. BillOutDataVendor has only a vendorNumber field.