> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.mangopay.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server.

# PHP SDK - 4.1.0

May 21, 2026

## Added

### PayPal deposit preauthorizations

New `PayPalDepositPreauthorization` entity (extends `Deposit`) with PayPal-specific fields (`PaypalPayerID`, `PaypalOrderID`, `BuyerFirstname`, `BuyerLastname`, `BuyerPhone`, `BuyerCountry`, `PaypalBuyerAccountEmail`, `CancelURL`, `Trackings`, `ShippingPreference`, `Reference`, `LineItems`, `RedirectURL`, `ReturnURL`, `DataCollectionId`). New method `ApiDeposits::CreatePayPalDepositPreauthorization()` (POST `/deposit-preauthorizations/payment-methods/paypal`) with optional `$idempotencyKey`.

`ApiDeposits::Get` / `Cancel` / `Update` / `GetAllForUser` now automatically hydrate PayPal deposits as `PayPalDepositPreauthorization` (instead of the base `Deposit` type), so PayPal-specific fields are accessible without any extra casting.

### Recurring Apple Pay and Google Pay pay-ins

Support for recurring Apple Pay and Google Pay pay-ins has been added via the following endpoints:

* `POST /payins/payment-methods/applepay/recurring`
* `POST /payins/payment-methods/googlepay/recurring`

### Recurring pay-in registrations

New `RecurringPayInRegistration` entity returned by the new registration methods (with `Status`, `ResultCode`, `ResultMessage`, `CurrentState`, `RecurringType`, `TotalAmount`, `CycleNumber`, `AuthorId`, `CreditedUserId`, `CreditedWalletId`, `Billing`, `Shipping`, `EndDate`, `Frequency`, `FixedNextAmount`, `FractionedPayment`, `FreeCycles`, `FirstTransactionDebitedFunds`, `FirstTransactionFees`, `NextTransactionDebitedFunds`, `NextTransactionFees`, `ProfilingAttemptReference`, `PaymentType`, `CardInfo`, `CardId`, `Migration`, `PaymentData`).

The SDK now also exposes the following methods returning the new `RecurringPayInRegistration` type:

* `ApiPayIns::CreateRecurringPayInRegistration()`
* `ApiPayIns::GetRecurringPayInRegistration()`
* `ApiPayIns::UpdateRecurringPayInRegistration()`

### Unified recurring pay-in creation

New unified `ApiPayIns::CreateRecurringPayIn()` method which dispatches to the correct endpoint based on the pay-in's `PaymentType` / `ExecutionType`, replacing the per-scheme CIT/MIT methods.

### `Report.DateFilterBy`

New optional `DateFilterBy` property on `Report` to control which date field the report filter applies to.

### Local Virtual Account properties for DK, AU, LI

Added properties to support `LocalAccount` details on Virtual Accounts:

* For DK, `BankCode` (4-digit bank code)
* For AU, `BSBCode` (6-digit Bank State Branch code)
* For LI, `BCNumber` (5-digit bank clearing number)

Existing properties (`Iban`, `Bic`, `AchNumber`, `FedWireNumber`, `AccountType`, `BranchCode`, `InstitutionNumber`) gained inline doc comments; behavior unchanged.

### Recipients pagination

Verified/tested that `ApiRecipients::GetUserRecipients()` honours the `Pagination` argument; no API change.

## Deprecated

### `ApiPayIns` deposit-preauthorized PayIn methods

The following methods have been deprecated in favour of new names aligned with the API resource (`/payins/deposit-preauthorized/...`). The old methods still work but will be removed in a future major version. The new methods have the same functionality, only the naming is changed:

* `ApiPayIns::CreateCardPreAuthorizedDepositPayIn()` (#795) → use `ApiPayIns::CreatePayInDepositPreauthorizedWithoutComplement()` instead.
* `ApiPayIns::CreateDepositPreauthorizedPayInWithoutComplement()` → use `ApiPayIns::CreatePayInDepositPreauthorizedWithoutComplement()` instead.
* `ApiPayIns::CreateDepositPreauthorizedPayInPriorToComplement()` → use `ApiPayIns::CreatePayInDepositPreauthorizedPriorToComplement()` instead.
* `ApiPayIns::CreateDepositPreauthorizedPayInComplement()` → use `ApiPayIns::CreatePayInDepositPreauthorizedComplement()` instead.

### `ApiPayIns` recurring PayIn methods

The following methods have been deprecated in favour of new names and a unified creation entry point. The old methods still work but will be removed in a future major version:

* `ApiPayIns::CreateRecurringRegistration()` → use `ApiPayIns::CreateRecurringPayInRegistration()` instead.
* `ApiPayIns::GetRecurringRegistration()` → use `ApiPayIns::GetRecurringPayInRegistration()` instead.
* `ApiPayIns::UpdateRecurringRegistration()` → use `ApiPayIns::UpdateRecurringPayInRegistration()` instead.
* `ApiPayIns::CreateRecurringPayInRegistrationCIT()` → use `ApiPayIns::CreateRecurringPayIn()` instead.
* `ApiPayIns::CreateRecurringPayInRegistrationMIT()` → use `ApiPayIns::CreateRecurringPayIn()` instead.
* `ApiPayIns::CreateRecurringPayPalPayInCIT()` → use `ApiPayIns::CreateRecurringPayIn()` instead.
* `ApiPayIns::CreateRecurringPayPalPayInMIT()` → use `ApiPayIns::CreateRecurringPayIn()` instead.