Getting startedRelease notesSDK

PHP SDK - 4.0.0

May 6, 2026

Sub-object casting

Breaking change

Typed sub-object mapping

Added missing GetSubObjects() mappings across response and request DTOs. Properties that were previously returned as raw stdClass objects are now hydrated as typed Mangopay entities.

Code that read nested properties as plain objects, such as via array-style access, property_exists, or by passing them to functions that expect stdClass, must be updated to use the typed classes.

Affected classes:

  • BankingAliasIBAN (LocalAccountDetailsLocalAccountDetailsBankingAlias)
  • BanksByCountry (BanksBank[])
  • CardPreAuthorization (added BrowserInfoBrowserInfo, ShippingShipping)
  • CardValidation (added CardInfoCardInfo)
  • Check (Data, ReasonsCheckData[])
  • Conversion (DebitedFunds, CreditedFunds, FeesMoney; RequestedFeesCustomFees; ConversionRateResponseConversionRate; MarginsResponseMarginsResponse)
  • ConversionQuote (DebitedFunds, CreditedFundsMoney; Fees, RequestedFeesCustomFees; ConversionRateResponseConversionRate; UserMarginUserMargin; MarginsResponseMarginsResponse)
  • CreateClientWalletsInstantConversion (DebitedFunds, CreditedFundsMoney)
  • CreateInstantConversion (DebitedFunds, CreditedFundsMoney; FeesCustomFees; UserMarginUserMargin)
  • IdentityVerification (ChecksCheck[])
  • InstantPayout now extends Libraries\Dto; UnreachableReasonFallbackReason
  • IntentSplits (SplitsPayInIntentSplit[])
  • InternationalAccountDetails (AddressVirtualAccountAddress, AccountInternationalAccount)
  • LocalAccountDetails (AddressVirtualAccountAddress, AccountLocalAccount)
  • MarginsResponse (Mangopay, UserUserMargin)
  • PayIn (AuthenticationResultAuthenticationResult)
  • PayInExecutionDetailsExternalInstruction (DebitedBankAccountDebitedBankAccount)
  • PayInIntent (LineItemsPayInIntentLineItem[]; CapturesPayInIntentCapture[]; CapturePayInIntentCapture; RefundsPayInIntentRefund[]; RefundPayInIntentRefund; DisputesPayInIntentDispute[]; DisputePayInIntentDispute; SplitsPayInIntentSplitInfo[])
  • PayInIntentCapture, PayInIntentDispute, PayInIntentRefund, PayInIntentSplitInfo (LineItemsPayInIntentLineItem[])
  • PayInPaymentDetailsBlik (BrowserInfoBrowserInfo)
  • PayInPaymentDetailsCard (BrowserInfoBrowserInfo, ShippingShipping)
  • PayInRecurringRegistration (FirstTransactionDebitedFunds, FirstTransactionFees, NextTransactionDebitedFunds, NextTransactionFeesMoney; BillingBilling; ShippingShipping)
  • PayInRecurringRegistrationGet (CurrentStateRecurringPayInCurrentState)
  • PayInRecurringRegistrationRequestResponse (TotalAmountMoney)
  • PayInRecurringRegistrationUpdate (ShippingShipping, BillingBilling)
  • PayOutEligibilityRequest (DebitedFunds, FeesMoney)
  • PayOutEligibilityResponse (InstantPayoutInstantPayout)
  • RecurringPayInCIT (BrowserInfoBrowserInfo; DebitedFunds, FeesMoney)
  • RecurringPayInCurrentState (CumulatedDebitedAmount, CumulatedFeesAmountMoney)
  • RecurringPayInMIT (DebitedFunds, FeesMoney)
  • RecurringPayPalPayInCIT (ShippingShipping)
  • RecurringPayPalPayInMIT (DebitedFunds, FeesMoney; ShippingShipping)
  • Report (FiltersReportFilters)
  • ReportRequest (FiltersFilterReports)
  • ScaStatus (ConsentScopeConsentScope)
  • SettlementValidation (FooterErrorsSettlementValidationFooter[]; LinesErrorsSettlementValidationLine[])
  • SupportedBank (CountriesBanksByCountry[])
  • VirtualAccount (LocalAccountDetailsLocalAccountDetails; CapabilitiesVirtualAccountCapabilities)
  • VirtualAccountAvailabilities (Collection, UserOwnedVirtualAccountAvailability[])

Virtual Account details

Breaking change

VirtualAccount.InternationalAccountDetails type fix

The VirtualAccount.$InternationalAccountDetails property is now correctly typed as InternationalAccountDetails[] instead of a single InternationalAccountDetails object, matching the API response.

Code that previously accessed this property as a single object must be updated to iterate the array.

Previously:

PHP
1$virtualAccount->InternationalAccountDetails->Iban;

Now:

PHP
1$virtualAccount->InternationalAccountDetails[0]->Iban;