> 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-php/blob/main/reference.md).

### Type namespace consolidated

All type classes have moved from per-resource `Types/` namespaces into a single `Payabli\Types\` namespace. Every `use` statement for a type class needs updating. `Payabli\<Resource>\Requests\` namespaces are unchanged.

#### Removed per-resource type namespaces

| Old namespace                        | Types moved |
| ------------------------------------ | ----------- |
| `Payabli\MoneyIn\Types\`             | 30 types    |
| `Payabli\QueryTypes\Types\`          | 31 types    |
| `Payabli\MoneyOutTypes\Types\`       | 25 types    |
| `Payabli\TokenStorage\Types\`        | 11 types    |
| `Payabli\PayoutSubscription\Types\`  | 11 types    |
| `Payabli\Ocr\Types\`                 | 10 types    |
| `Payabli\Invoice\Types\`             | 7 types     |
| `Payabli\V2MoneyInTypes\Types\`      | 7 types     |
| `Payabli\User\Types\`                | 6 types     |
| `Payabli\PaymentLink\Types\`         | 6 types     |
| `Payabli\Vendor\Types\`              | 6 types     |
| `Payabli\Notificationlogs\Types\`    | 5 types     |
| `Payabli\Subscription\Types\`        | 5 types     |
| `Payabli\PaymentMethodDomain\Types\` | 5 types     |
| `Payabli\Statistic\Types\`           | 4 types     |
| `Payabli\ChargeBacks\Types\`         | 4 types     |
| `Payabli\Organization\Types\`        | 3 types     |
| `Payabli\GhostCard\Types\`           | 3 types     |
| `Payabli\Boarding\Types\`            | 3 types     |
| `Payabli\Paypoint\Types\`            | 7 types     |
| `Payabli\Management\Types\`          | 2 types     |
| `Payabli\Cloud\Types\`               | 2 types     |
| `Payabli\CheckCapture\Types\`        | 2 types     |
| `Payabli\Bill\Types\`                | 8 types     |
| `Payabli\LineItem\Types\`            | 1 type      |
| `Payabli\Export\Types\`              | 1 type      |

### Guzzle must be added explicitly

The SDK no longer bundles an HTTP client. Add `guzzlehttp/guzzle: ^7.4` to your project's `composer.json` to satisfy the PSR-18 requirement.

### Request wrapper types removed

The following body wrapper types are deleted. Their fields are now direct constructor arguments on the parent request class.

#### Removed types and their replacements

| Removed type                    | Fields now on                   | Method                                         |
| ------------------------------- | ------------------------------- | ---------------------------------------------- |
| `AuthorizePayoutBody`           | `RequestOutAuthorize`           | `moneyOut->authorizeOut`                       |
| `ReissuePayoutBody`             | `ReissueOutRequest`             | `moneyOut->reissueOut`                         |
| `SubscriptionRequestBody`       | `RequestSchedule`               | `subscription->newSubscription`                |
| `PayoutSubscriptionRequestBody` | `RequestPayoutSchedule`         | `payoutSubscription->createPayoutSubscription` |
| `NotificationLogSearchRequest`  | `SearchNotificationLogsRequest` | `notificationlogs->searchNotificationLogs`     |
| `PaymentPageRequestBody`        | `PayLinkDataInvoice`            | `paymentLink->addPayLinkFromInvoice`           |

The `MoneyOutTypesRequestOutAuthorize` type is also renamed to `RequestOutAuthorize` (in `Payabli\MoneyOut\Requests\`).

### Five types moved from `Types\` to `Requests\`

These classes moved from a `Types` namespace to the `Requests` namespace of their resource:

#### Moved types

| Class                                  | Old namespace                      | New namespace                         |
| -------------------------------------- | ---------------------------------- | ------------------------------------- |
| `VendorEnrichRequest`                  | `Payabli\Vendor\Types`             | `Payabli\Vendor\Requests`             |
| `PatchOutPaymentLinkRequest`           | `Payabli\PaymentLink\Types`        | `Payabli\PaymentLink\Requests`        |
| `PaypointMoveRequest`                  | `Payabli\Paypoint\Types`           | `Payabli\Paypoint\Requests`           |
| `CreateApplicationFromPaypointRequest` | `Payabli\Boarding\Types`           | `Payabli\Boarding\Requests`           |
| `UpdatePayoutSubscriptionBody`         | `Payabli\PayoutSubscription\Types` | `Payabli\PayoutSubscription\Requests` |

### New typed enums for method and terms fields

`PayMethodCredit::$method`, `RequestCreditPaymentMethod::$method`, and `BillOutData::$terms` are now typed enums. Raw strings still work at runtime but will fail static analysis.

#### Enum details

| Field                                 | Old                | New enum type                      | Example                                        |
| ------------------------------------- | ------------------ | ---------------------------------- | ---------------------------------------------- |
| `PayMethodCredit::$method`            | `'card'` (string)  | `PayMethodCreditMethod`            | `PayMethodCreditMethod::Card->value`           |
| `RequestCreditPaymentMethod::$method` | `'ach'` (string)   | `RequestCreditPaymentMethodMethod` | `RequestCreditPaymentMethodMethod::Ach->value` |
| `BillOutData::$terms`                 | `'NET30'` (string) | `Terms`                            | `Terms::Net30->value`                          |

### Boarding type renames

`ApplicationDataPayInServicesAch` → `AchSetup`, `ApplicationDataPayInServicesCard` → `CardSetup`, `ApplicationDataPayInContactsItem` → `Contacts`, `ApplicationDataPayInOwnershipItem` → `Owners`. All now in `Payabli\Types\`.

### `BillOutData::$vendor` type changed

Type changed from `?VendorData` to `?BillOutDataVendor`. `BillOutDataVendor` has only a `vendorNumber` field.