> 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

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