Skip to navigation

v1.0.26

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)

The client adds the Businesses, People, Paypoints, PaymentMethods, BoardingTemplates, and Applications clients. Their methods return envelope types, such as *payabli.BusinessDetailEnvelope.

These endpoints only accept OAuth. Create the client with option.WithClientCredentials and your OAuth client ID and client secret. See OAuth authentication and Manage API credentials.

c := client.NewClient(
option.WithClientCredentials("CLIENT_ID", "CLIENT_SECRET"),
)
business, err := c.Businesses.GetBusiness(ctx, "BUSINESS_REFERENCE")
if err != nil {
return err
}
fmt.Println(business)

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.ExportApplications was already deprecated. It doesn’t use the Deprecated: comment convention, so linters don’t flag the calls.

UnprocessableEntityError.Body is now any

The new applications endpoints return a different error body for HTTP 422, so UnprocessableEntityError.Body is now any instead of *PayabliErrorBody. Code that reads its fields, such as after MoneyOut.AuthorizeOut, CaptureOut, or Payout, no longer compiles.

// Before
text := unprocessable.Body.ResponseText
// After
var body any = unprocessable.Body

Case management bank account services use new types

BankAccountServices.MoneyIn is now []CaseManagementMoneyInService, and MoneyOut is now []CaseManagementMoneyOutService, as are their Get and Set methods. The new types have the same values as MoneyInService and MoneyOutService, with constants such as CaseManagementMoneyInServiceAch.

// Before
services.SetMoneyIn([]payabli.MoneyInService{payabli.MoneyInServiceAch})
// After
services.SetMoneyIn([]payabli.CaseManagementMoneyInService{payabli.CaseManagementMoneyInServiceAch})

v1.0.25

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.GetNextCheckNumber(ctx, paypointId int64, accountId string) returns *payabli.NextCheckNumberResponse, whose CheckNumber is a string.
  • GhostCard.DeleteGhostCard(ctx, cardToken string) returns *payabli.DeleteGhostCardResponse. Its ResponseData has DeleteType and CardToken (*string).
next, err := client.MoneyOut.GetNextCheckNumber(ctx, 285, "ACCOUNT_ID")
deleted, err := client.GhostCard.DeleteGhostCard(ctx, "CARD_TOKEN")

Request changes

  • ReissueOutRequest adds CheckNumber (*VendorCheckNumber).
  • RequestUpdateSchedule, the request for Subscription.UpdateSubscription, adds InvoiceData (*BillData). Call SetInvoiceData(nil) to remove the subscription’s invoice data.
  • VendorData adds Issue1099 (*bool).

Vendor 1099 flag

VendorQueryRecord, VendorDataResponse, TransferOutDetailVendor, and PayoutSubscriptionVendor add Issue1099 (Issue1099, an alias for bool). AssociatedVendor, VCardGetResponseAssociatedVendor, VendorOutData, and GetMethodResponseResponseDataVendorsItem add Issue1099 (*Issue1099).

Payouts that paid a bill

BillResponseData and BillQueryRecord2 add Transactions ([]*BillTransactionReference). Each BillTransactionReference has IdOut (int64) and PaymentId (*string).

Card-present device details

  • TransactionQueryRecords and TransactionQueryRecordsCustomer add DeviceEntryMode (DeviceEntryMode, an alias for *string), EmvAuthData (*EmvAuthData, with RequestEmvData and ResponseEmvData), and DeviceData (*QueryDeviceData).
  • DeviceQueryRecord adds OperationalStatus (DeviceQueryRecordOperationalStatus, with the constants DeviceQueryRecordOperationalStatusOnline, DeviceQueryRecordOperationalStatusBusy, and DeviceQueryRecordOperationalStatusOffline), plus AppVersion and OsVersion (*string).

Each new field has its own Get method.