> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

## 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](https://github.com/payabli/sdk-java/blob/main/reference.md).

### 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.*`.

#### Removed per-resource type packages

| Old package                          | Example types                                                                                |
| ------------------------------------ | -------------------------------------------------------------------------------------------- |
| `resources.moneyin.types`            | `TransRequestBody`, `PayMethodCredit`, `PayorDataRequest`, `PaymentDetail`                   |
| `resources.moneyout.types`           | `RequestOutAuthorize`, `ReissueOutRequest`                                                   |
| `resources.moneyouttypes.types`      | `AuthorizePayoutBody` *(removed)*, `AuthorizePaymentMethod`, `ReissuePayoutBody` *(removed)* |
| `resources.tokenstorage.types`       | `RequestTokenStorage`, `AddMethodResponse`                                                   |
| `resources.subscription.types`       | `SubscriptionRequestBody` *(removed)*, `RequestSchedulePaymentMethod`                        |
| `resources.payoutsubscription.types` | `PayoutSubscriptionRequestBody` *(removed)*                                                  |
| `resources.notification.types`       | `AddNotificationRequest`, `UpdateNotificationRequest`                                        |
| `resources.notificationlogs.types`   | `NotificationLogSearchRequest` *(removed)*                                                   |
| `resources.paymentlink.types`        | `PaymentPageRequestBody` *(removed)* → now `PaymentPageRequestBodyOut`                       |
| `resources.customer.types`           | `CustomerData`                                                                               |
| `resources.bill.types`               | `BillOutData`, `BillItem`                                                                    |
| `resources.invoice.types`            | `InvoiceDataRequest`                                                                         |
| `resources.boarding.types`           | `AddApplicationRequest`, `AchSetup`, `CardSetup`                                             |

### Request body wrapper types removed

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

#### Removed types and their replacements

| Removed type                    | Fields now on                                                                          |
| ------------------------------- | -------------------------------------------------------------------------------------- |
| `SubscriptionRequestBody`       | `RequestSchedule` builder                                                              |
| `PayoutSubscriptionRequestBody` | `RequestPayoutSchedule` builder                                                        |
| `AuthorizePayoutBody`           | `RequestOutAuthorize` builder *(also renamed from `MoneyOutTypesRequestOutAuthorize`)* |
| `ReissuePayoutBody`             | `ReissueOutRequest` builder                                                            |
| `NotificationLogSearchRequest`  | `SearchNotificationLogsRequest` builder                                                |
| `PaymentPageRequestBody`        | `PayLinkDataInvoice` 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

#### Full list

| Field                           | Old type                           | New type                           |
| ------------------------------- | ---------------------------------- | ---------------------------------- |
| `CustomerData.identifierFields` | `List<Optional<String>>`           | `List<String>`                     |
| `BillItem.itemCategories`       | `Optional<List<Optional<String>>>` | `Optional<List<String>>`           |
| `BillOutData.terms`             | `String` (e.g. `"NET30"`)          | `Terms` enum (e.g. `Terms.NET_30`) |
| `BillOutData.vendor`            | `VendorData`                       | `BillOutDataVendor`                |

### 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`.