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

This release includes breaking changes. It adds clients for the intelligent boarding API (beta) and marks the legacy boarding methods as deprecated. See [October 19, 2026](/changelog/api-changelog/2026/10/19) for more information.

### Intelligent boarding clients (beta)

The client adds the `businesses`, `people`, `paypoints`, `payment_methods`, `boarding_templates`, and `applications` clients, on both the sync and async clients. Their methods return envelope models, such as `BusinessCreatedEnvelope`, with `data` and `warnings` fields.

These endpoints only accept OAuth. Pass your OAuth `client_id` and `client_secret` when you create the client. See [OAuth authentication](/developers/oauth-authentication) and [Manage API credentials](/guides/platform-developer-api-credentials-manage).

```python
client = payabli(client_id="CLIENT_ID", client_secret="CLIENT_SECRET")
template = client.boarding_templates.get_template(uuid_="TEMPLATE_UUID")
```

### Legacy boarding methods are deprecated

Legacy boarding will be sunset in Q2 2027. Every method on `boarding` and `templates` now has a deprecation warning in its documentation. `export.export_applications` was already deprecated. Calling them doesn't raise a `DeprecationWarning`.

### `UnprocessableEntityError.body` is no longer `PayabliErrorBody`

The new applications endpoints return a different error body for HTTP `422`, so `money_out.authorize_out`, `capture_out`, and `payout` now raise `UnprocessableEntityError` with the response JSON as a `dict`, not a `PayabliErrorBody`. Code like `e.body.response_text` now raises `AttributeError`.

```python
# Before
except UnprocessableEntityError as e:
    text = e.body.response_text

# After
except UnprocessableEntityError as e:
    body = e.body  # the response JSON
```

### Case management bank account services use new types

`BankAccountServices.money_in` and `money_out` are now typed `Optional[List[CaseManagementMoneyInService]]` and `Optional[List[CaseManagementMoneyOutService]]`. These have the same values as `MoneyInService` and `MoneyOutService`, so existing code still works.

## v1.0.18

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

* `money_out.get_next_check_number(paypoint_id, account_id)` returns `NextCheckNumberResponse`, whose `check_number` is a `str`.
* `ghost_card.delete_ghost_card(card_token)` returns `DeleteGhostCardResponse`. Its `response_data` has `delete_type` and `card_token`.

The async client has the same methods.

```python
next_check = client.money_out.get_next_check_number(paypoint_id=285, account_id="ACCOUNT_ID")
deleted = client.ghost_card.delete_ghost_card(card_token="CARD_TOKEN")
```

### Request changes

* `money_out.reissue_out` adds the `check_number` parameter.
* `subscription.update_subscription` adds the `invoice_data` parameter (`Optional[BillData]`). Pass `invoice_data=None` to remove the subscription's invoice data.
* `VendorData` adds `issue_1099` (`Optional[bool]`).

### Vendor 1099 flag

`VendorQueryRecord`, `VendorDataResponse`, `TransferOutDetailVendor`, and `PayoutSubscriptionVendor` add the required field `issue_1099` (`Issue1099`, an alias for `bool`). `AssociatedVendor`, `VCardGetResponseAssociatedVendor`, `VendorOutData`, and `GetMethodResponseResponseDataVendorsItem` add `issue_1099` (`Optional[Issue1099]`).

### Payouts that paid a bill

`BillResponseData` and `BillQueryRecord2` add `transactions` (`Optional[List[BillTransactionReference]]`). Each `BillTransactionReference` has `id_out` (`int`) and `payment_id` (`Optional[str]`).

### Card-present device details

* `TransactionQueryRecords` and `TransactionQueryRecordsCustomer` add `device_entry_mode` (`Optional[DeviceEntryMode]`), `emv_auth_data` (`Optional[EmvAuthData]`, with `request_emv_data` and `response_emv_data`), and `device_data` (`Optional[QueryDeviceData]`).
* `DeviceQueryRecord` adds the required field `operational_status` (`DeviceQueryRecordOperationalStatus`: `"online"`, `"busy"`, or `"offline"`), plus `app_version` and `os_version` (`Optional[str]`).

Models built without the new required fields, such as test fixtures, now raise `ValidationError`.