> 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.20

This release includes breaking changes. The notification log and stored payment method types now match what the API returns, and OCR results have new amount fields. See [September 22, 2026](/changelog/api-changelog/2026/9/22), [September 29, 2026](/changelog/api-changelog/2026/9/29), [October 1, 2026](/changelog/api-changelog/2026/10/1), [October 2, 2026](/changelog/api-changelog/2026/10/2), and [October 5, 2026](/changelog/api-changelog/2026/10/5) for more information.

### Notification log retry methods return new types

`notificationlogs().retryNotificationLog` now returns `NotificationRetryResponse`, which has a single `getMessage()` method, instead of `NotificationLogDetail`. `notificationlogs().bulkRetryNotificationLogs` now returns `String` instead of `void`. The async and raw clients have the same changes.

```java
// Before
NotificationLogDetail log = client.notificationlogs().retryNotificationLog("UUID");

// After
NotificationRetryResponse retry = client.notificationlogs().retryNotificationLog("UUID");
String message = retry.getMessage();
String bulk = client.notificationlogs().bulkRetryNotificationLogs(Arrays.asList("UUID"));
```

### Notification log types share a new base interface

`NotificationLog` and `NotificationLogDetail` now both implement the new `INotificationLogBase` interface, and there's a new `NotificationLogBase` class. `NotificationLogDetail` no longer implements `INotificationLog`.

* `getResponseStatus()` now returns `String` instead of `Optional<String>`. It holds a status message such as `OK`. The HTTP status code is in `getResponseStatusCode()`.
* On `NotificationLogDetail`, `getResponseContent()` now returns `String` instead of `Optional<String>`.
* Both types add the required `getOrganizationName()`, `getPaypointName()`, `getRequestId()`, and `getResponseStatusCode()` (`int`).
* `NotificationLog` adds the required `getNotificationType()`, `getOrganizationLogo()`, `getOrganizationFavIcon()`, and `getPaypointLogo()`.

The new required fields are new builder stages, so existing `builder()` calls for these types must set them.

### Customer fields on stored payment methods

`GetMethodResponseResponseDataCustomersItem` no longer implements `IPayorDataRequest`, and the `IPayorDataRequest` interface has been removed. `getFirstName()` and `getLastName()` are now `getFirstname()` and `getLastname()`.

#### Removed and added fields

Removed: `additionalData`, `billingAddress1`, `billingAddress2`, `billingCity`, `billingCountry`, `billingEmail`, `billingPhone`, `billingState`, `billingZip`, and `shippingAddress2`.

Added: `additionalFields`, `address`, `address1`, `city`, `country`, `customerEvents`, `customerPortal`, `email`, `phone`, `shippingAddress`, `state`, and `zip`.

### New response fields

* `AddMethodResponse` adds `getPageIdentifier()`, and `AddMethodResponseResponseData` adds `getAuthCode()`, `getAvsResponseText()`, `getCvvResponseText()`, and `getVendorId()`.
* `GetMethodResponseResponseData` adds `getWalletType()`.
* `OcrResultData` adds `getTotalAmount()` and `getDiscount()` (`Optional<Double>`).