v2.0.20
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 for more information.
Intelligent boarding clients (beta)
ApiClient adds the businesses, people, paypoints, payment_methods, boarding_templates, and applications clients. Their methods return envelope types, such as BusinessDetailEnvelope.
These endpoints only accept OAuth. Set your OAuth client_id and client_secret in ClientConfig. See OAuth authentication and Manage API credentials.
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. The methods don’t have the #[deprecated] attribute, so the compiler doesn’t warn you.
Renamed request types
Three request types were renamed so they don’t collide with the new clients’ types. Their fields haven’t changed.
ApiError::UnprocessableEntityError has new fields
The new applications endpoints return a different error body for HTTP 422. ApiError::UnprocessableEntityError now has message, field, and validation_error instead of message, is_success, response_code, response_text, and response_data. Code that matches on the old fields no longer compiles.
Case management bank account services use new types
BankAccountServices::money_in is now Option<Vec<CaseManagementMoneyInService>>, and money_out is now Option<Vec<CaseManagementMoneyOutService>>. The new enumerations have the same variants as MoneyInService and MoneyOutService.
New pagination module
The new pagination types module has the same name as the pagination module that the crate root already re-exports, so imports that start with payabli_api::pagination::, such as use payabli_api::pagination::AsyncPaginator;, no longer compile. Import AsyncPaginator, SyncPaginator, and PaginationResult from the crate root or from payabli_api::core::pagination instead. The new Pagination type is available from the crate root and the prelude.
v2.0.19
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 for more information.
New methods
money_out.get_next_check_number(paypoint_id: i64, account_id: &str, options)returnsResult<NextCheckNumberResponse, ApiError>.NextCheckNumberResponse::check_numberis aString.ghost_card.delete_ghost_card(card_token: &str, options)returnsResult<DeleteGhostCardResponse, ApiError>. Itsresponse_datahasdelete_typeandcard_token(Option<String>).
Request changes
ReissueOutRequestaddscheck_number(Option<VendorCheckNumber>).RequestUpdateSchedule, the request forsubscription.update_subscription, addsinvoice_data(Option<BillData>).VendorDataaddsissue_1099(Option<bool>).
Vendor 1099 flag
VendorQueryRecord, VendorDataResponse, TransferOutDetailVendor, and PayoutSubscriptionVendor add the required field issue_1099 (Issue1099, a tuple struct that wraps a bool). AssociatedVendor, VCardGetResponseAssociatedVendor, VendorOutData, and GetMethodResponseResponseDataVendorsItem add issue_1099 (Option<Issue1099>).
Payouts that paid a bill
BillResponseData and BillQueryRecord2 add transactions (Option<Vec<BillTransactionReference>>). Each BillTransactionReference has id_out (i64) and payment_id (Option<String>).
Card-present device details
TransactionQueryRecordsandTransactionQueryRecordsCustomeradddevice_entry_mode(Option<DeviceEntryMode>),emv_auth_data(Option<EmvAuthData>, withrequest_emv_dataandresponse_emv_data), anddevice_data(Option<QueryDeviceData>).DeviceQueryRecordadds the required fieldoperational_status(DeviceQueryRecordOperationalStatus, with the variantsOnline,Busy, andOffline), plusapp_versionandos_version(Option<String>).
Builders for VendorQueryRecord, VendorDataResponse, TransferOutDetailVendor, PayoutSubscriptionVendor, and DeviceQueryRecord fail with BuildError when a new required field is missing. Struct literals of the changed types must set the new fields.