Skip to content

Adyen PHP API Library v29.0.0

Latest

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 28 Jan 15:02
· 23 commits to main since this release

This v29.0.0 release introduces several improvements, support of new Webhook events and several fixes.

Note

It is also the last version that supports PHP 7.3. Please read the note below.

NOTICE: Upcoming release of PHP library v30 and end of support for PHP 7.3

The next version (v30) will introduce several key improvements like native enums, named arguments and the constructor property promotion.

With the release of v30, we will also remove support for the PHP 7.3 runtime environment.

The PHP community declared PHP 7.3 End-of-Life (EOL) in 2021, meaning it no longer receives security patches or bug fixes. Consequently, our v30 library will require a newer runtime (PHP 8.1 or higher) to ensure your integration remains secure and aligned with industry standards.

We recommend upgrading your environment to maintain proper integration hygiene and access to new features.

We will provide the necessary technical details and breaking changes in the v30 release notes to assist your development team with the transition.

You can identify the integrations making use of the PHP library in the Customer Area:

Path: Developers -> Dashboard
View: “Integration types” dashboard -> 'Libraries' tab.
The “Used by” column identifies the specific merchant accounts using this library.

v29.0.0

Breaking Changes 🛠

Checkout API

A new ShopperName class has been introduced to define the name of the shopper. This change affects the shopperName property in the following classes: CreateCheckoutSessionRequest, CreateCheckoutSessionResponse, DonationPaymentRequest, PaymentRequest.

The property type has been updated from Name to ShopperName.

Migration Steps for PHP

If you were manually creating the Name object for your requests, you must now instantiate the ShopperName model instead:

Before:

$name = new \Adyen\Model\Checkout\Name();
$name->setFirstName("John");
$request->setShopperName($name);

After:

$shopperName = new \Adyen\Model\Checkout\ShopperName();
$shopperName->setFirstName("John");
$request->setShopperName($shopperName);

Enum FRAUD_RESULT_TYPE_FRAUD has been removed from ResponseAdditionalDataCommon

New Features 💎

Checkout API

  • Added support for Checkout Forward stored payment details
  • Added support for UpiQrDetails payment method
  • Added the SdkData property to all payment methods (i.e. AchDetails, etc..)
  • Added attributes billingSequenceNumber and encryptedPassword in CardDetails, CardDonations, CheckoutPaymentMethod
  • Added attributes bankCode and branchCode in CheckoutBankTransferAction, CheckoutBankTransferAction, PaymentResponseAction
  • Added attribute levelTwoThree to EnhancedSchemeData
  • Added enum prepaid In ApplePayDonations, CardDetails, CardDonations, PaymentMethod, VisaCheckoutDetails
  • Added attributes paymentValidations and shopperTaxInfo in PaymentRequest
  • Added attribute paymentValidations in PaymentResponse
  • Added new contract types (EXTERNAL and ONECLICK,RECURRING) to the ContractEnum in Recurring
  • Added attribute sepadirectdebitSepadirectdebitDueDate in ResponseAdditionalDataSepa
  • Added ResponseAdditionalDataSwish class
  • Added attribute dueDate to SepaDirectDebitDetails
  • Added attribute mandate to StoredPaymentMethodResource
  • Added attribute billingSequenceNumber to UpiIntentDetails
  • Added attributes recurringDetailReference, storedPaymentMethodId in WeChatPayMiniProgramDetails

LegalEntity Management API

BinLookup API

  • In class Recurring add enums CONTRACT_ONECLICKRECURRING and CONTRACT_EXTERNAL

Recurring API

  • In class Recurring add enums CONTRACT_ONECLICKRECURRING and CONTRACT_EXTERNAL

Payout API

  • In class Recurring add enums CONTRACT_ONECLICKRECURRING and CONTRACT_EXTERNAL
  • In ResponseAdditionalDataSepa add sepadirectdebitSepadirectdebitDueDate attribute
  • Add class ResponseAdditionalDataSwish

Balance Platform

  • Add attributes name, line1, line2, line3 in BulkAddress
  • Make optional attribute number in Card
  • Add attribute phone in DeviceInfo
  • Add enum value dataReview in VerificationError and VerificationErrorRecursive

⚠️ Removing of unused attributes
Several attributes (cardCaptureTechnology, deviceName, imei, isoDeviceType, msisdn, osVersion, paymentTypes, serialNumber, storageTechnology) have been removed DeviceInfo: this is NOT considered a breaking change since those attributes were never included in the API response

Note

In SweepConfigurationV2, CreateSweepConfigurationV2 and UpdateSweepConfigurationV2 several enum values have been deleted (REASON_APPROVAL_EXPIRED, REASON_DECLINED, etc..), however those values were never delivered or used.

Transfers API

  • Add attribute storedPaymentMethodId in BankAccountV3
  • Add enum value STATUS_ACCEPTED in ConfirmationTrackingData
  • Add attribute fundingInstrument in UltimatePartyIdentification
  • Add enum value PLATFORM_PAYMENT_TYPE_DCC_MARKUP in PlatformPayment
  • Add several enum values in TransferData, TransferDataCategoryData, TransferEvent

Transfer Webhooks

  • Add attribute storedPaymentMethodId in BankAccountV3
  • Add enum value STATUS_ACCEPTED in ConfirmationTrackingData
  • Add enum value PLATFORM_PAYMENT_TYPE_DCC_MARKUP in PlatformPayment
  • Add several enum values in TransferData, TransferDataCategoryData, TransferEvent

Transaction Webhooks

  • Add enum DCCMarkup in PlatformPayment

Balance Webhooks

Disputes Webhooks

  • Add enum TYPE_OTHER in BalancePlatformNotificationResponse

Configuration Webhooks

  • In BulkAddress add attributes line1, line2, line3, mobile, name
  • Make optional attribute number in Card
  • Add attribute deviceId in Device
  • Add attribute schemeRiskScore in NetworkTokenNotificationDataV2.php
  • Add enum value TYPE_DATA_REVIEW in VerificationError
  • Add enum value TYPE_DATA_REVIEW in VerificationErrorRecursive

Note

In SweepConfigurationV2 several enum values have been deleted (REASON_APPROVAL_EXPIRED, REASON_DECLINED, etc..), however those values were never delivered or used.

Management Webhooks

  • Add attribute assignedToStoreId in TerminalAssignmentNotificationRequest
  • Add enum TYPE_DATA_REVIEW in VerificationError

Transfer Webhooks

  • Add attribute storedPaymentMethodId in BankAccountV3
  • Add enum value STATUS_ACCEPTED in ConfirmationTrackingData
  • Add enum value PLATFORM_PAYMENT_TYPE_DCC_MARKUP in PlatformPayment
  • Add several enum values in TransferData, TransferDataCategoryData, TransferEvent

Relayed Authorization webhooks

Other Changes 🖇️

  • Update PHPUnit to 9.6.33 to fix unsafe deserialization vulnerability by #880
  • Format UserAgent on API requests by @gcatanese in #843
  • AGENTS.md for contributors by @galesky-a in #842
  • Tests with nested object (strictly types vs array) by @gcatanese in #845
  • feat(ci): move formatting step before PR creation by @galesky-a in #846
  • ci: Allow formatting to fail as before by @galesky-a in #847

Changes by PR

New Contributors

Full Changelog: v28.3.0...v29.0.0