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

This release adds methods to get the next check number and cancel ghost cards, a check number on reissued payouts, invoice data on subscription updates, a 1099 flag on vendors, every payout that paid a bill, and card-present device details. See [October 19, 2026](/changelog/api-changelog/2026/10/19) for more information.

### New methods

* `moneyOut().getNextCheckNumber(long paypointId, String accountId)` returns `NextCheckNumberResponse`, whose `getCheckNumber()` returns `String`.
* `ghostCard().deleteGhostCard(String cardToken)` returns `DeleteGhostCardResponse`. Its `getResponseData()` returns `Optional<DeleteGhostCardResponseData>`, which has `getDeleteType()` and `getCardToken()`.

The async and raw clients have the same methods.

```java
NextCheckNumberResponse next = client.moneyOut().getNextCheckNumber(285L, "ACCOUNT_ID");
DeleteGhostCardResponse deleted = client.ghostCard().deleteGhostCard("CARD_TOKEN");
```

### Request changes

* `ReissueOutRequest` adds `checkNumber(String)` to its builder, and `getCheckNumber()` returns `Optional<String>`.
* `RequestUpdateSchedule`, the request for `subscription().updateSubscription`, adds `invoiceData(BillData)` to its builder. To remove the subscription's invoice data, pass `Nullable.ofNull()` from `io.github.payabli.api.core`:

  ```java
  client.subscription().updateSubscription(396, RequestUpdateSchedule.builder()
          .invoiceData(Nullable.<BillData>ofNull())
          .build());
  ```
* `VendorData` adds `issue1099(Boolean)` to its builder, and `getIssue1099()` returns `Optional<Boolean>`.

### Vendor 1099 flag

`VendorQueryRecord`, `VendorDataResponse`, `TransferOutDetailVendor`, and `PayoutSubscriptionVendor` add the required `getIssue1099()` (`boolean`). `AssociatedVendor`, `VCardGetResponseAssociatedVendor`, `VendorOutData`, and `GetMethodResponseResponseDataVendorsItem` add `getIssue1099()` (`Optional<Boolean>`).

### Payouts that paid a bill

`BillResponseData` and `BillQueryRecord2` add `getTransactions()` (`Optional<List<BillTransactionReference>>`). Each `BillTransactionReference` has `getIdOut()` (`long`) and `getPaymentId()` (`Optional<String>`).

### Card-present device details

* `TransactionQueryRecords` and `TransactionQueryRecordsCustomer` add `getDeviceEntryMode()` (`Optional<String>`), `getEmvAuthData()` (`Optional<EmvAuthData>`, with `getRequestEmvData()` and `getResponseEmvData()`), and `getDeviceData()` (`Optional<QueryDeviceData>`).
* `DeviceQueryRecord` adds the required `getOperationalStatus()` (`DeviceQueryRecordOperationalStatus`, with the constants `ONLINE`, `BUSY`, and `OFFLINE`), plus `getAppVersion()` and `getOsVersion()` (`Optional<String>`).

The new required fields are new builder stages, so existing `builder()` calls for `VendorQueryRecord`, `VendorDataResponse`, `TransferOutDetailVendor`, `PayoutSubscriptionVendor`, and `DeviceQueryRecord` must set them.