This is the changelog for the Payabli Java 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 package consolidated

All 212 type classes have moved from per-resource types.* packages into io.github.payabli.api.types. Resource-specific request classes (e.g. RequestPaymentV2, SearchNotificationLogsRequest) remain in resources.<resource>.requests.*.

Old packageExample types
resources.moneyin.typesTransRequestBody, PayMethodCredit, PayorDataRequest, PaymentDetail
resources.moneyout.typesRequestOutAuthorize, ReissueOutRequest
resources.moneyouttypes.typesAuthorizePayoutBody (removed), AuthorizePaymentMethod, ReissuePayoutBody (removed)
resources.tokenstorage.typesRequestTokenStorage, AddMethodResponse
resources.subscription.typesSubscriptionRequestBody (removed), RequestSchedulePaymentMethod
resources.payoutsubscription.typesPayoutSubscriptionRequestBody (removed)
resources.notification.typesAddNotificationRequest, UpdateNotificationRequest
resources.notificationlogs.typesNotificationLogSearchRequest (removed)
resources.paymentlink.typesPaymentPageRequestBody (removed) → now PaymentPageRequestBodyOut
resources.customer.typesCustomerData
resources.bill.typesBillOutData, BillItem
resources.invoice.typesInvoiceDataRequest
resources.boarding.typesAddApplicationRequest, AchSetup, CardSetup

Request body wrapper types removed

The following types are deleted. Their fields are now set directly on the parent request builder.

Removed typeFields now on
SubscriptionRequestBodyRequestSchedule builder
PayoutSubscriptionRequestBodyRequestPayoutSchedule builder
AuthorizePayoutBodyRequestOutAuthorize builder (also renamed from MoneyOutTypesRequestOutAuthorize)
ReissuePayoutBodyReissueOutRequest builder
NotificationLogSearchRequestSearchNotificationLogsRequest builder
PaymentPageRequestBodyPayLinkDataInvoice builder fields directly

PayMethodCredit staged builder enforces field order

The builder now requires cardexp()cardnumber()method(PayMethodCreditMethod.CARD) before optional fields are accessible. Passing optional setters before the required chain causes a compile error. Affects authorize, getpaid, getpaidv2, authorizev2, and subscription.newSubscription.

RequestCreditPaymentMethod also gains a required method(RequestCreditPaymentMethodMethod.ACH) field for MoneyIn.credit.

Collection type changes

FieldOld typeNew type
CustomerData.identifierFieldsList<Optional<String>>List<String>
BillItem.itemCategoriesOptional<List<Optional<String>>>Optional<List<String>>
BillOutData.termsString (e.g. "NET30")Terms enum (e.g. Terms.NET_30)
BillOutData.vendorVendorDataBillOutDataVendor

Notification log ID type changed

getNotificationLog, retryNotificationLog, and bulkRetryNotificationLogs now accept String instead of UUID for ID parameters. bulkRetryNotificationLogs changes from List<UUID> to List<String>.

Subscription date format changed

ScheduleDetail.startDate and ScheduleDetail.endDate now use ISO 8601 (yyyy-MM-dd) instead of MM-dd-yyyy.