This is the changelog for the Payabli Go SDK. It includes updates, bug fixes, and new features.

v1.0.0

As part of an ongoing effort to improve the consistency and usability of our SDKs, we’ve updated the SDK generation process. This update introduces breaking changes to the SDK. All breaking changes affect only method signatures and namespacing, not core record types or properties. SDK initialization, configuration, business logic, and workflows remain unchanged. For more information on precise method signatures and example usage, please see the SDK reference on GitHub.

Request body wrapper structs removed

The following structs are deleted. Their fields are now on the parent request struct directly.

Removed structFields now onMethod
AuthorizePayoutBodyRequestOutAuthorizeMoneyOut.AuthorizeOut
SubscriptionRequestBodyRequestScheduleSubscription.NewSubscription
PayoutSubscriptionRequestBodyRequestPayoutSchedulePayoutSubscription.CreatePayoutSubscription
ReissuePayoutBodyReissueOutRequestMoneyOut.ReissueOut
NotificationLogSearchRequestSearchNotificationLogsRequestNotificationlogs.SearchNotificationLogs
PaymentPageRequestBodyPayLinkDataInvoicePaymentLink.AddPayLinkFromInvoice

Required Method field on payment types

PayMethodCredit.Method and RequestCreditPaymentMethod.Method are now required. Both fields were previously absent; omitting them caused an API validation error at runtime.

1// PayMethodCredit — affects MoneyIn.Authorize, Getpaid, Getpaidv2, Authorizev2, Subscription.NewSubscription
2PayMethodCredit: &payabli.PayMethodCredit{
3 Cardexp: "02/27",
4 Cardnumber: "4111111111111111",
5 Method: payabli.PayMethodCreditMethodCard, // required
6}
7
8// RequestCreditPaymentMethod — affects MoneyIn.Credit
9PaymentMethod: &payabli.RequestCreditPaymentMethod{
10 AchAccount: payabli.String("88354454"),
11 Method: payabli.RequestCreditPaymentMethodMethodAch, // required
12}

Field and element type changes

FieldOld typeNew type
BillItem.ItemCostfloat64*float64 — use payabli.Float64(value)
BillItem.ItemCategories elements[]*string[]string
BillOutData.Vendor*VendorData*BillOutDataVendor
BillOutData.Terms*string (free text)*payabli.Terms enum — e.g. payabli.TermsNet30.Ptr()
MoneyOut.AuthorizeOut autoCapture type*bool (inside body)*payabli.AutoCapture (top-level on RequestOutAuthorize)
UpdatePayoutSubscription.SetPause*payabli.SetPause*payabli.PayoutSetPause

Boarding type changes

ApplicationDataPayInServicesAch renamed to AchSetup; ApplicationDataPayInServicesCard renamed to CardSetup.

The Contacts and Ownership slice fields on ApplicationDataPayIn changed from concrete pointer slices to interface slices. The implementing types are *payabli.Contacts and *payabli.Owners respectively:

1// Before
2Contacts: []*payabli.ApplicationDataPayInContactsItem{
3 {ContactEmail: payabli.String("contact@example.com")},
4}
5
6// After
7Contacts: []payabli.ApplicationDataPayInContactsItem{
8 &payabli.Contacts{ContactEmail: payabli.String("contact@example.com")},
9}

MoneyOutTypesRequestOutAuthorize renamed

Renamed to RequestOutAuthorize. The body() wrapper field is removed. All fields are now top-level.

Query.ListBatchDetailsOrg return type changed

Return type changed from *payabli.QueryResponseSettlements to *payabli.QueryBatchesDetailResponse. ListBatchDetails (per-entrypoint) already returned *QueryBatchesDetailResponse in both SDKs.