> 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

# Go SDK changelog

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

## October 27, 2026

## v1.0.27

This release includes breaking changes. It corrects the organization details types to match the API, renames the ticket amount fields on paypoint credentials, and adds an organizations client for the intelligent boarding API (beta). See [October 20, 2026](/changelog/api-changelog/2026/10/20) and [October 22, 2026](/changelog/api-changelog/2026/10/22) and [October 27, 2026](/changelog/api-changelog/2026/10/27) for more information.

### Basic organization details return a response envelope

`Organization.GetBasicOrganization` and `Organization.GetBasicOrganizationById` now return `*payabli.GetBasicOrganizationResponse` instead of `*payabli.OrganizationQueryRecord`. The organization details are in `ResponseData`, alongside `IsSuccess` and `ResponseText`.

```go
// Before
org, err := c.Organization.GetBasicOrganization(ctx, "my-org")

// After
basic, err := c.Organization.GetBasicOrganization(ctx, "my-org")
if err != nil {
	return err
}
org := basic.GetResponseData()
```

### Organization details types match the API

`OrganizationQueryRecord` changes these field types, and their `Get` and `Set` methods:

* `BillingInfo` is now `*InstrumentResponse` instead of `*Instrument`. `InstrumentResponse` has `AchAccount`, `AchRouting`, `BillingAddress`, `BillingCity`, `BillingCountry`, `BillingState`, and `BillingZip` (`*string`).
* `Contacts` is now `[]*ContactsResponse` instead of `*ContactsField`. `ContactsResponse` has `ContactName`, `ContactEmail`, `ContactTitle`, and `ContactPhone`.
* `OrgLogo` is now `*string`, the logo's URL, instead of `*FileContent`.

It also adds `OrgFavicon` (`*string`), the URL of the organization's favicon. The field names are unchanged, but their JSON tags now match the PascalCase names the API returns, such as `OrgId` and `BillingInfo`.

### Ticket amount fields renamed

`PayabliCredentialsPascal` renames `MaxTicket` to `Maxticket` and `MinTicket` to `Minticket`, along with their `Get` methods.

```go
// Before
fmt.Println(credentials.GetMaxTicket(), credentials.GetMinTicket())

// After
fmt.Println(credentials.GetMaxticket(), credentials.GetMinticket())
```

### Organizations client (beta)

The client adds `Organizations`, with `ListOrganizations`, `CreateOrganization`, `GetOrganization`, and `UpdateOrganization`. `CreateOrganization` takes `*payabli.CreateOrganizationOrganizationsRequest`, which holds one of `CreateOrganizationWithInlineBusiness`, `CreateOrganizationWithBusinessReference`, or `CreateOrganizationAllFields`. The methods return envelope types, such as `*payabli.PaypointDetailEnvelope`.

These endpoints only accept OAuth. Create the client with `option.WithClientCredentials` and your OAuth client ID and client secret. See [OAuth authentication](/developers/oauth-authentication).

```go
detail, err := c.Organizations.GetOrganization(ctx, "org-reference")
```

### Other changes

* `MethodsListOut` adds `Rtp` and `Wire` (`*bool`).
* `PaypointSummaryResponse` adds `ExternalId` (`*string`).

## October 19, 2026

## 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](/changelog/api-changelog/2026/10/19) 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](/developers/oauth-authentication) and [Manage API credentials](/guides/platform-developer-api-credentials-manage).

```go
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.

```go
// 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`.

```go
// 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](/changelog/api-changelog/2026/10/19) 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`).

```go
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.

## October 14, 2026

## v1.0.24

This release includes breaking changes. The get payout subscription response now uses its own camelCase types. See [October 14, 2026](/changelog/api-changelog/2026/10/14) for more information.

### New types in the get payout subscription response

`PayoutSubscriptionQueryRecord` now uses new types for its vendor, bills, and payment data:

| Field         | Before               | After                            |
| ------------- | -------------------- | -------------------------------- |
| `Vendor`      | `*VendorQueryRecord` | `*PayoutSubscriptionVendor`      |
| `BillData`    | `[]*BillPayOutData`  | `[]*PayoutSubscriptionBill`      |
| `PaymentData` | `*QueryPaymentData`  | `*PayoutSubscriptionPaymentData` |

Their `Get` and `Set` methods change the same way. `PayoutSubscriptionPaymentData.PaymentDetails` is a `*PayoutSubscriptionPaymentDetails`. Update any code that names the old types:

```go
// Before
var vendor *payabli.VendorQueryRecord = record.Vendor

// After
var vendor *payabli.PayoutSubscriptionVendor = record.Vendor
```

### New payment data type in list payout subscriptions

`PayoutSubscriptionQueryRecordPascal.PaymentData` is now a `*PayoutSubscriptionPaymentDataPascal` instead of a `*QueryPaymentData`.

### New fields on payout subscriptions

`PayoutSubscriptionQueryRecord` and `PayoutSubscriptionQueryRecordPascal` add `SameDayAch`, `DoNotCreateBills`, `AllowDuplicatedBills`, `AutoConvertSameDayAch` (`*bool`), and `SubscriptionType` (`*string`), with their `Get` and `Set` methods. The payment data types add `WalletType` and `PayorSignature`, and `PayoutSubscriptionPaymentDetails` adds the payout details fields, such as `OrderId`.

### Vendor record changes

`VendorQueryRecord.StoredMethods` is now a `[]*VendorStoredMethod`. `VendorStoredMethod` adds `IsDefault`. `VendorQueryRecord` adds `VendorPortal` (`*VendorPortalAccess`), and `BillingDataResponse` adds `Country` (`*string`).

## October 5, 2026

## v1.0.23

This release includes breaking changes. The notification log and stored payment method types now match what the API returns, and OCR results have new amount fields. This entry also covers v1.0.21 and v1.0.22. See [September 22, 2026](/changelog/api-changelog/2026/9/22), [September 29, 2026](/changelog/api-changelog/2026/9/29), [October 1, 2026](/changelog/api-changelog/2026/10/1), [October 2, 2026](/changelog/api-changelog/2026/10/2), and [October 5, 2026](/changelog/api-changelog/2026/10/5) for more information.

### Notification log retry methods return new types

`Notificationlogs.RetryNotificationLog` now returns `*payabli.NotificationRetryResponse`, which has a single `Message` field, instead of `*payabli.NotificationLogDetail`. `Notificationlogs.BulkRetryNotificationLogs` now returns `(string, error)` instead of `error`.

```go
// Before
log, err := c.Notificationlogs.RetryNotificationLog(ctx, "UUID")
err = c.Notificationlogs.BulkRetryNotificationLogs(ctx, payabli.BulkRetryRequest{"UUID"})

// After
retry, err := c.Notificationlogs.RetryNotificationLog(ctx, "UUID")
message := retry.GetMessage()
bulk, err := c.Notificationlogs.BulkRetryNotificationLogs(ctx, payabli.BulkRetryRequest{"UUID"})
```

### Notification log fields

* `ResponseStatus` on `NotificationLog` and `NotificationLogDetail` is now `string` instead of `*string`, and its `Get` and `Set` methods change to match. It holds a status message such as `OK`. The HTTP status code is in the new `ResponseStatusCode` (`int`).
* On `NotificationLogDetail`, `ResponseContent` is now `string` instead of `*string`, and `GetResponseContent()` returns `string`.
* Both types add `OrganizationName`, `PaypointName`, `RequestId`, and `ResponseStatusCode`.
* `NotificationLog` adds `NotificationType`, `OrganizationLogo`, `OrganizationFavIcon`, and `PaypointLogo`.
* There's a new `NotificationLogBase` struct.

### Customer fields on stored payment methods

On `GetMethodResponseResponseDataCustomersItem`, `FirstName` and `LastName` are now `Firstname` and `Lastname`, with matching `Get` and `Set` methods. `ShippingAddress1` is now `*Shippingaddressadditional` instead of `*Shippingaddress`.

#### Removed and added fields

Removed: `AdditionalData`, `BillingAddress1`, `BillingAddress2`, `BillingCity`, `BillingCountry`, `BillingEmail`, `BillingPhone`, `BillingState`, `BillingZip`, and `ShippingAddress2`.

Added: `AdditionalFields`, `Address`, `Address1`, `City`, `Country`, `CustomerEvents`, `CustomerPortal`, `Email`, `Phone`, `ShippingAddress`, `State`, and `Zip`.

### New response fields

* `AddMethodResponse` adds `PageIdentifier`, and `AddMethodResponseResponseData` adds `AuthCode`, `AvsResponseText`, `CvvResponseText`, and `VendorId`.
* `GetMethodResponseResponseData` adds `WalletType`.
* `OcrResultData` adds `TotalAmount` and `Discount` (`*float64`).

## September 18, 2026

## v1.0.20

Regenerated the Go SDK to incorporate latest API documentation improvements. See [September 18, 2026](/changelog/api-changelog/2026/9/18) for more information.

## September 16, 2026

## v1.0.19

Regenerated the Go SDK to incorporate latest API documentation improvements. See [September 16, 2026](/changelog/api-changelog/2026/9/16) for more information.

## September 10, 2026

## v1.0.18

Regenerated the Go SDK to incorporate latest API documentation improvements. See [September 10, 2026](/changelog/api-changelog/2026/9/10) for more information.

## September 9, 2026

## v1.0.17

Regenerated the Go SDK to incorporate latest API documentation improvements. See [September 8, 2026](/changelog/api-changelog/2026/9/8) for more information.

## August 28, 2026

## v1.0.16

### New `BusinessSummary` field on `PaypointData`

`PaypointData` now includes `BusinessSummary`, a business description from boarding. See [August 28, 2026](/changelog/api-changelog/2026/8/28) for more information.

## July 28, 2026

## v1.0.14

Regenerated the Go SDK to incorporate latest API documentation improvements. See [July 28, 2026](/changelog/api-changelog/2026/7/28) for more information.

## July 27, 2026

## v1.0.13

Added OAuth2 client-credentials support via `option.WithClientID`/`option.WithClientSecret`. The SDK handles the token exchange and refresh automatically:

```go
client := client.NewClient(
    option.WithClientID("..."),
    option.WithClientSecret("..."),
    option.WithBaseURL(sdk.Environments.Sandbox),
)
```

The existing `option.WithApiKey(...)` option function still works unchanged — no action needed if you're not switching auth methods. See the [Go SDK guide](/developers/platform-sdk-go-guide) and [Authentication](/developers/authentication) to compare both methods.

## July 20, 2026

## v1.0.10

Changed the `VendorQueryRecord.AdditionalData` type from `map[string]map[string]any` to `map[string]string` to match the API.

## June 30, 2026

## v1.0.7

Regenerated the Go SDK to incorporate latest API documentation improvements. See [June 30, 2026](/changelog/api-changelog/2026/6/30) for more information.

## June 11, 2026

## v1.0.1

Regenerated the Go SDK to incorporate latest API documentation improvements. See [June 11, 2026](/changelog/api-changelog/2026/6/11) for more information.

## June 8, 2026

## 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](https://github.com/payabli/sdk-go/blob/main/reference.md).

### Request body wrapper structs removed

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

#### Removed structs and their replacements

| Removed struct                  | Fields now on                   | Method                                        |
| ------------------------------- | ------------------------------- | --------------------------------------------- |
| `AuthorizePayoutBody`           | `RequestOutAuthorize`           | `MoneyOut.AuthorizeOut`                       |
| `SubscriptionRequestBody`       | `RequestSchedule`               | `Subscription.NewSubscription`                |
| `PayoutSubscriptionRequestBody` | `RequestPayoutSchedule`         | `PayoutSubscription.CreatePayoutSubscription` |
| `ReissuePayoutBody`             | `ReissueOutRequest`             | `MoneyOut.ReissueOut`                         |
| `NotificationLogSearchRequest`  | `SearchNotificationLogsRequest` | `Notificationlogs.SearchNotificationLogs`     |
| `PaymentPageRequestBody`        | `PayLinkDataInvoice`            | `PaymentLink.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.

```go
// PayMethodCredit — affects MoneyIn.Authorize, Getpaid, Getpaidv2, Authorizev2, Subscription.NewSubscription
PayMethodCredit: &payabli.PayMethodCredit{
    Cardexp:    "02/27",
    Cardnumber: "4111111111111111",
    Method:     payabli.PayMethodCreditMethodCard,  // required
}

// RequestCreditPaymentMethod — affects MoneyIn.Credit
PaymentMethod: &payabli.RequestCreditPaymentMethod{
    AchAccount: payabli.String("88354454"),
    Method:     payabli.RequestCreditPaymentMethodMethodAch,  // required
}
```

### Field and element type changes

#### Full list

| Field                                      | Old type              | New type                                                    |
| ------------------------------------------ | --------------------- | ----------------------------------------------------------- |
| `BillItem.ItemCost`                        | `float64`             | `*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:

```go
// Before
Contacts: []*payabli.ApplicationDataPayInContactsItem{
    {ContactEmail: payabli.String("contact@example.com")},
}

// After
Contacts: []payabli.ApplicationDataPayInContactsItem{
    &payabli.Contacts{ContactEmail: payabli.String("contact@example.com")},
}
```

### `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.

## May 20, 2026

## v0.0.458

Fixed an issue where the Go SDK wasn't properly deserializing the `ExtraData` field in certain API response models.

## May 11, 2026

## v0.0.457

Regenerated the Go SDK to incorporate latest API documentation improvements. See [May 11, 2026](/changelog/api-changelog/2026/5/11) for more information.

## May 8, 2026

## v0.0.455

Fixed a bug that caused the `CustomerSummary` object to be deserialized incorrectly in customer records.
Fixed a bug that caused the `InvoiceData` object to be deserialized incorrectly in transaction records.
Regenerated the Go SDK to incorporate latest API definition updates.

## April 30, 2026

## v0.0.454

Fixed a bug that caused `MoneyIn.Getpaidv2` to error when deserializing the response. Regenerated the Go SDK to incorporate latest API definition updates.

## April 13, 2026

## v0.0.452

Regenerated the Go SDK to incorporate latest API documentation improvements. See [April 13, 2026](/changelog/api-changelog/2026/4/13) for more information.

_Showing the 20 most recent of 32 entries. Append `/llms.txt` to the changelog URL for the complete index._