Skip to navigation

v1.1.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)

PayabliApiClient adds the Businesses, People, Paypoints, PaymentMethods, BoardingTemplates, and Applications clients. Their methods return envelope types, such as BusinessDetailEnvelope, with Data and Warnings properties.

These endpoints only accept OAuth. Pass your OAuth clientId and clientSecret when you create the client. See OAuth authentication and Manage API credentials.

var client = new PayabliApiClient(clientId: "CLIENT_ID", clientSecret: "CLIENT_SECRET");
BusinessDetailEnvelope business = await client.Businesses.GetBusinessAsync("BUSINESS_REFERENCE");

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.ExportApplicationsAsync was already deprecated. The methods don’t have the [Obsolete] attribute, so the compiler doesn’t warn you.

UnprocessableEntityError.Body is now object

The new applications endpoints return a different error body for HTTP 422, so UnprocessableEntityError.Body is now object instead of PayabliErrorBody. Code that reads its properties, such as after MoneyOut.AuthorizeOutAsync, CaptureOutAsync, or PayoutAsync, no longer compiles.

// Before
catch (UnprocessableEntityError e) { string text = e.Body.ResponseText; }
// After
catch (UnprocessableEntityError e) { object body = e.Body; }

Case management bank account services use new types

BankAccountServices.MoneyIn is now IEnumerable<CaseManagementMoneyInService>?, and MoneyOut is now IEnumerable<CaseManagementMoneyOutService>?. The new types have the same values as MoneyInService and MoneyOutService.

// Before
MoneyIn = new List<MoneyInService> { MoneyInService.Ach },
// After
MoneyIn = new List<CaseManagementMoneyInService> { CaseManagementMoneyInService.Ach },

v1.1.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

  • MoneyOut.GetNextCheckNumberAsync(long paypointId, string accountId) returns NextCheckNumberResponse, whose CheckNumber is a string.
  • GhostCard.DeleteGhostCardAsync(string cardToken) returns DeleteGhostCardResponse. Its ResponseData has DeleteType and CardToken (string?).
NextCheckNumberResponse next = await client.MoneyOut.GetNextCheckNumberAsync(285, "ACCOUNT_ID");
DeleteGhostCardResponse deleted = await client.GhostCard.DeleteGhostCardAsync("CARD_TOKEN");

Request changes

  • ReissueOutRequest adds CheckNumber (string?).
  • RequestUpdateSchedule, the request for Subscription.UpdateSubscriptionAsync, adds InvoiceData (BillData?).
  • VendorData adds Issue1099 (bool?).

Vendor 1099 flag

VendorQueryRecord, VendorDataResponse, TransferOutDetailVendor, and PayoutSubscriptionVendor add the required property Issue1099 (bool). AssociatedVendor, VCardGetResponseAssociatedVendor, VendorOutData, and GetMethodResponseResponseDataVendorsItem add Issue1099 (bool?).

Payouts that paid a bill

BillResponseData and BillQueryRecord2 add Transactions (IEnumerable<BillTransactionReference>?). Each BillTransactionReference has IdOut (long) and PaymentId (string?).

Card-present device details

  • TransactionQueryRecords and TransactionQueryRecordsCustomer add DeviceEntryMode (string?), EmvAuthData (EmvAuthData?, with RequestEmvData and ResponseEmvData), and DeviceData (QueryDeviceData?).
  • DeviceQueryRecord adds the required property OperationalStatus (DeviceQueryRecordOperationalStatus, with the values Online, Busy, and Offline), plus AppVersion and OsVersion (string?).

Code that creates VendorQueryRecord, VendorDataResponse, TransferOutDetailVendor, PayoutSubscriptionVendor, or DeviceQueryRecord objects without setting the new required properties, such as tests and mocks, no longer compiles. Code that only reads them isn’t affected.