This is the changelog for the Payabli PHP SDK. It includes updates, bug fixes, and new features.

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.

Old namespaceTypes moved
Payabli\MoneyIn\Types\30 types
Payabli\QueryTypes\Types\31 types
Payabli\MoneyOutTypes\Types\25 types
Payabli\TokenStorage\Types\11 types
Payabli\PayoutSubscription\Types\11 types
Payabli\Ocr\Types\10 types
Payabli\Invoice\Types\7 types
Payabli\V2MoneyInTypes\Types\7 types
Payabli\User\Types\6 types
Payabli\PaymentLink\Types\6 types
Payabli\Vendor\Types\6 types
Payabli\Notificationlogs\Types\5 types
Payabli\Subscription\Types\5 types
Payabli\PaymentMethodDomain\Types\5 types
Payabli\Statistic\Types\4 types
Payabli\ChargeBacks\Types\4 types
Payabli\Organization\Types\3 types
Payabli\GhostCard\Types\3 types
Payabli\Boarding\Types\3 types
Payabli\Paypoint\Types\7 types
Payabli\Management\Types\2 types
Payabli\Cloud\Types\2 types
Payabli\CheckCapture\Types\2 types
Payabli\Bill\Types\8 types
Payabli\LineItem\Types\1 type
Payabli\Export\Types\1 type

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 typeFields now onMethod
AuthorizePayoutBodyRequestOutAuthorizemoneyOut->authorizeOut
ReissuePayoutBodyReissueOutRequestmoneyOut->reissueOut
SubscriptionRequestBodyRequestSchedulesubscription->newSubscription
PayoutSubscriptionRequestBodyRequestPayoutSchedulepayoutSubscription->createPayoutSubscription
NotificationLogSearchRequestSearchNotificationLogsRequestnotificationlogs->searchNotificationLogs
PaymentPageRequestBodyPayLinkDataInvoicepaymentLink->addPayLinkFromInvoice

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:

ClassOld namespaceNew namespace
VendorEnrichRequestPayabli\Vendor\TypesPayabli\Vendor\Requests
PatchOutPaymentLinkRequestPayabli\PaymentLink\TypesPayabli\PaymentLink\Requests
PaypointMoveRequestPayabli\Paypoint\TypesPayabli\Paypoint\Requests
CreateApplicationFromPaypointRequestPayabli\Boarding\TypesPayabli\Boarding\Requests
UpdatePayoutSubscriptionBodyPayabli\PayoutSubscription\TypesPayabli\PayoutSubscription\Requests

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.

FieldOldNew enum typeExample
PayMethodCredit::$method'card' (string)PayMethodCreditMethodPayMethodCreditMethod::Card->value
RequestCreditPaymentMethod::$method'ach' (string)RequestCreditPaymentMethodMethodRequestCreditPaymentMethodMethod::Ach->value
BillOutData::$terms'NET30' (string)TermsTerms::Net30->value

Boarding type renames

ApplicationDataPayInServicesAchAchSetup, ApplicationDataPayInServicesCardCardSetup, ApplicationDataPayInContactsItemContacts, ApplicationDataPayInOwnershipItemOwners. All now in Payabli\Types\.

BillOutData::$vendor type changed

Type changed from ?VendorData to ?BillOutDataVendor. BillOutDataVendor has only a vendorNumber field.