Releases: checkout/checkout-sdk-php
Release list
5.2.0
Release 5.2.0 (#352)
** Accounts BREAKING CHANGE **
This release introduces significant enhancements and extensions to the Accounts API client and related data models to support Accounts API v3.0. The main goals are to enable schema version negotiation via the Accept header, expand the onboarding request and company models for new v3.0 fields, and add several new supporting classes for richer onboarding flows.
The most important changes are:
Accounts API v3.0 Schema Versioning Support: BREAKING CHANGE!
- Added a
DEFAULT_SCHEMA_VERSIONconstant and updated key client methods inAccountsClientto accept a$schemaVersionparameter (defaulting to 3.0), passing this as anAcceptheader to the API. This enables negotiation of the Accounts API schema version for all major entity operations. [1] [2] [3] [4] [5]
Expanded Onboarding and Company Models:
- Extended
OnboardEntityRequestandCompanywith new fields required by Accounts API v3.0, such asprocessing_details,agreed_terms,seller_category,is_draft,date_of_incorporation,regulatory_licence_number, and more. Added detailed PHPDoc for each field. [1] [2] - Added new business types in
BusinessTypeand new entity roles inEntityRolesfor v3.0 compatibility. [1] [2]
New Supporting Data Classes for v3.0:
- Introduced new classes for richer onboarding and processing details:
AgreedTerms,ProcessingDetails,ProcessingDetailsPayments,ProcessingDetailsAch,DateOfIncorporation, andCompanyPosition. These enable capturing additional information required by the latest API version. [1] [2] [3] [4] [5] [6]
OnboardSubEntityDocuments Enhancements:
- Expanded
OnboardSubEntityDocumentswith new optional document fields (e.g.,articles_of_association,shareholder_structure,bank_verification, etc.) to support the full set of required documents for different onboarding schema variants.
Documentation and Header Handling Improvements:
- Improved PHPDoc for all updated and new fields, clarifying requirements and formats. Enhanced
Headersto support the newacceptheader for schema negotiation.
These changes collectively prepare the codebase for full support of Accounts API v3.0 onboarding and entity management, while maintaining backward compatibility.
5.1.0
Release 5.1.0 (#347)
This release introduces several new features and improvements to the issuing and payments domains, including expanded support for dispute handling, enhancements to card activation and revocation scheduling, and richer order/payment setup models. It also removes some deprecated or redundant classes and fields to streamline the codebase.
Issuing Disputes Enhancements:
- Added new models for handling fraud-related dispute details (
IssuingDisputeFraudDetails,IssuingDisputeFraudType) and integrated them into dispute request classes, allowing for more granular and structured fraud reporting. [1] [2] [3] [4] [5] [6] - Introduced the
AmendDisputeRequestmodel and correspondingamendDisputemethod inIssuingClient, enabling amendments to disputes that are blocked or require additional information. [1] [2] [3] [4] - Marked the
submitDisputemethod as deprecated, guiding users towards the new dispute amendment flow.
Card Management Improvements:
- Added
activation_dateandrevocation_datefields to bothCardRequestandUpdateCardRequestclasses, allowing for scheduled card activation and automatic revocation. [1] [2] - Removed the
ScheduleRevocationRequestclass and related scheduling methods fromIssuingClient, consolidating revocation scheduling into the main card request models. [1] [2] [3]
Payments and Order Setup Extensions:
- Enhanced the
Ordermodel with new fields forinvoice_id,shipping_amount,surcharge_amount,tax_amount,tipping_amount, andamount_allocations, supporting more detailed order breakdowns. - Added new models for
PaymentSetupAmountAllocationandAmountAllocationCommission, enabling split payments and commission handling in setup flows. [1] [2] - Introduced the
PaymentSetupBillingDescriptormodel for richer payment descriptions and billing information.
Account and Instrument Details:
- Added
InstrumentAccountTypeandInstrumentDetailsAchmodels to support ACH payment instrument details, including account and routing numbers. [1] [2]
Cleanup and Deprecations:
- Removed the
CardholderDocumentclass and related references from cardholder request models, simplifying cardholder data structures. [1] [2] [3] [4]
These changes collectively improve the flexibility, compliance, and functionality of the issuing and payments APIs, while also streamlining the codebase for easier maintenance.…nd Platforms instrument details)
5.0.0
GetFaceAuthenticationAttemptAssets, PaymentPlan updates + Move to PHP versions 8.X (dropped all 7.X ones) (#345)
BREAKING CHANGE
This release drops support for PHP 7.1 and 7.4, raising the minimum required PHP version to 8.1. It updates the SDK and its dependencies accordingly, simplifies the Composer and CI workflows, and updates documentation to reflect these changes.
PHP version and dependency requirements:
- Updated
composer.jsonto requirephp: >=8.1.0,guzzlehttp/guzzle: ^7.4, andmonolog/monolog: ^2.4 || ^3.0.0; dropped support for older versions and removed compatibility with PHP 7.x and Guzzle 6.x. Updated dev dependencies to requirephpunit/phpunit: ^9.0only. - Updated
README.mdto state that as of v5.0.0, the SDK requires PHP 8.1 or newer, and to explain the rationale for dropping PHP 7.x support. Updated Composer example accordingly.
Continuous Integration (CI) and workflow changes:
- Removed all references to PHP 7.1 and 7.4 from GitHub Actions workflows (
build-master.yml,build-pull-request.yml,build-release.yml), so CI now only tests PHP 8.1 and 8.4 on supported OSes. Simplified installation and Composer steps accordingly. [1] [2] [3] [4] [5] [6] [7] [8]
General update
This release introduces new functionality for retrieving assets associated with face authentication and identity verification attempts, adds support for recurring payment plans and authorization types to several payment request objects, and exposes a new processing field. It also includes comprehensive tests for the new features.
Identity Verification & Face Authentication Enhancements:
- Added the
AttemptAssetsQueryFilterentity to support pagination when querying assets related to authentication and verification attempts. - Introduced
getFaceAuthenticationAttemptAssetsandgetIdentityVerificationAttemptAssetsmethods in their respective clients, enabling retrieval of assets (like images and videos) captured during an attempt, with optional pagination. [1] [2] - Added corresponding unit and integration tests for these new asset retrieval methods, ensuring correct API endpoint usage and response validation. [1] [2] [3] [4] [5] [6]
Payments API Improvements:
- Added support for recurring payment plans and authorization types by introducing new
payment_planandauthorization_typefields toHostedPaymentsSessionRequest,PaymentLinkRequest, andPaymentSessionsRequest. [1] [2] [3] - Exposed the
scheme_transaction_link_idfield inProcessingSettingsto allow access to the scheme transaction link identifier for card transactions. - Updated integration tests to safely access the new
scheme_transaction_link_idfield, confirming its presence and type when available.
4.9.0
Release 4.9.0 - General payments update (#340)
This release introduces several new features and enhancements across the SDK, mainly focusing on expanding support for dispute evidence, onboarding simulation, and entity requirements, along with some smaller improvements and bug fixes. The most important changes are grouped below by theme.
Onboarding Simulator Support:
- Added a new
OnboardingSimulatorClientclass and related request objects, enabling sandbox testing of account onboarding workflows, such as setting requirements due, running scenarios, and updating entity status. This client is now accessible via the mainCheckoutApiclass. [1] [2] [3] [4] [5] [6] [7]
Entity Requirements Management:
- Enhanced the
AccountsClientwith methods to retrieve pending requirements for a sub-entity, get details about specific requirements, and resolve requirements with a newEntityRequirementUpdateRequestclass. [1] [2] [3]
Dispute Evidence Enhancements:
- Added a
CompellingEvidencemodel and extended theDisputeEvidenceRequestto support new fields for arbitration evidence and compelling evidence, improving dispute handling capabilities. [1] [2] [3]
Instruments Management Improvements:
- Added a
revokemethod toInstrumentsClientto allow revoking instruments for future transactions, and updated related request classes for clarity and expanded customer data support. [1] [2] [3] [4] [5]
Other Enhancements and Fixes:
- Added support for query parameters and body variables in
DestinationRequestfor forwarding requests. - Updated the PHP 8.4 download URL in the GitHub Actions workflow for Windows builds.
- Added new fields to issuing card request classes for metadata, revocation date, and card controls. [1] [2]
These changes collectively improve the SDK's feature coverage, especially for testing onboarding flows, managing entity compliance, and dispute resolution.
4.8.0
Release 4.8.0 (#337)
This release adds support for a wide range of new alternative payment methods (APMs) by introducing new payment source types and corresponding request source classes. These changes enable the system to handle additional payment options such as ACH, Bizum, Blik, MobilePay, Octopus, PayNow, Plaid, Sequra, Swish, Twint, and Vipps, among others. The update primarily involves extending the PaymentSourceType enumeration and implementing new request classes for each APM, some of which include additional relevant fields.
Support for new payment source types:
- Added new static members to
PaymentSourceTypefor various APMs, includingbizum,ach,blik,mobilepay,octopus,paynow,plaid,sequra,swish,twint, andvipps.
New request source classes for APMs:
- Implemented new request source classes in the
Apmnamespace for each supported APM:RequestAchSource,RequestBizumSource,RequestBlikSource,RequestMobilePaySource,RequestOctopusPaySource,RequestPayNowSource,RequestPlaidSource,RequestSequraSource,RequestSwishSource,RequestTwintSource,RequestVippsSource, and others. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
Additional fields for specific payment sources:
- Some new request source classes include additional fields relevant to their payment method, such as
account_type,country,account_numberfor ACH,partner_agreement_idfor Blik,tokenandaccount_holderfor Plaid,billing_addressfor Sequra, andbilling_descriptorfor Swish. [1] [2] [3] [4] [5]
These changes collectively expand the system's capability to support a broader array of payment methods, improving flexibility and coverage for international payments.
4.7.1
Version 4.7.1 (#332)
This release updates the naming conventions for request class properties in the Google Pay integration to use snake_case instead of camelCase. This change improves consistency and aligns with common PHP coding standards.
Property renaming for consistency:
Renamed properties in GooglePayEnrollmentRequest from camelCase to snake_case: entityId → entity_id, emailAddress → email_address, and acceptTermsOfService → accept_terms_of_service.
Renamed the webDomain property to web_domain in GooglePayRegisterDomainRequest.…snake-case)
4.7.0
Release - 4.7.0 (#330)
This release adds support for new sdk clients: Agentic Commerce, Compliance Requests and GooglePay. It introduces new API clients, request/response entity classes, and updates the main CheckoutApi class to expose these clients. Additionally, it updates the API client to allow passing custom headers for POST requests. These changes enable delegated payment token creation, compliance request retrieval, and response submission.
Agentic Commerce API integration:
- Added
AgenticCommerceClientfor creating delegated payment tokens, including support for custom integrity headers and idempotency keys. - Introduced related entity classes:
DelegatedPaymentRequest,DelegatedPaymentAllowance,DelegatedPaymentBillingAddress,DelegatedPaymentMethodCard,DelegatedPaymentRiskSignal, and supporting enums/types for card and funding types. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
Compliance Requests API integration:
- Added
ComplianceRequestsClientto retrieve and respond to compliance requests by payment ID. - Added entity classes for compliance response fields and grouping by party:
ComplianceRespondedField,ComplianceRespondedFields. [1] [2]
Google Pay API integration:
- Added
GooglePayClientto manage all google pay enrollments and domains
Core API enhancements:
- Updated
ApiClient::postto accept optional custom headers, supporting new API requirements for integrity and versioning.
Main API surface changes:
- Updated
CheckoutApito instantiate and exposeAgenticCommerceClient,ComplianceRequestsClient, andGooglePayClientvia new getter methods. [1] [2] [3] [4] [5]
4.6.1
Release - 4.6.1 (#328)
Added account_name_inquiry field to AccountHolder class (#327)
This release introduces a small update to the AccountHolder class by adding a new property to support account name inquiry functionality.
lib/Checkout/Common/AccountHolder.php: Added a new public boolean property account_name_inquiry to the AccountHolder class to indicate whether an account name inquiry has been performed.
4.6.0
Release - 4.6.0 (#311)
This release introduces several enhancements and new features to the SDK, focusing on expanding API coverage, improving file handling. The changes include new client methods for file upload and retrieval, support for additional API clients, improvements to request serialization, and the addition of several new data classes.
Major SDK Feature Additions and Improvements:
- Added new methods to
AccountsClientfor uploading and retrieving files for sub-entities, supporting due diligence documentation. - Introduced new endpoints in
DisputesClientto support arbitration evidence submission and retrieval for disputes. - Added new data classes:
FilePurpose(for file upload purposes),UploadFileRequest(file upload request model),CardholderAccessTokenRequest,UpdateCardholderRequest, andCardMetadata. [1] [2] [3] [4] [5] - Updated
ShippingInstructionsin the issuing cards module to clarify and swap the meaning ofshipping_addressandrecipient_address.
API Client and Serialization Enhancements:
- Improved request body handling in
ApiClientto correctly set content types for JSON, multipart, and form-urlencoded requests, ensuring more robust API interactions. - Added utility methods in
Clientto serialize request objects as form-urlencoded data, converting camelCase properties to snake_case as required by some endpoints.
Expanded API Client Access:
- Registered and exposed new clients in
CheckoutApi:PaymentMethodsClient,StandaloneAccountUpdaterClient, andApplePayClient, with corresponding getter methods for easier access. [1] [2] [3] [4]
Other Minor Improvements:
- Added a missing import for
UploadFileRequestinAccountsClientto support the new file upload feature. - Added a constant for the arbitration path in
DisputesClient.
4.5.0
Release - 4.5.0 (#309)
This release introduces new features and enhancements to the Checkout API client, focusing on expanding support for identities management, sub-entity member management, reserve rules, and additional API clients. It also improves the flexibility of the API client for handling custom headers and request body formats. Below are the most important changes:
API Client Enhancements
-
Refactored
ApiClientto support custom headers via reflection, improved handling of different request body formats (JSON, multipart form data, form URL encoded), and updated method signatures for greater flexibility. [1] [2] [3] [4] [5] -
Refactored
ApiClientmethods to accept a more generic$requestBodyand optional custom headers, improving support for different content types (JSON, multipart, form URL encoded) and making header injection more flexible via reflection. Utility methods were added for header conversion and content-type detection. [1] [2] [3] [4] [5] -
New if-match header support in the put requests through Accounts Headers class.
New API Client Integrations
- Added new client properties and getter methods to
CheckoutApiforNetworkTokensClient,FaceAuthenticationClient,IdDocumentVerificationClient,IdentityVerificationClient,AmlScreeningClient, andApplicantsClient, enabling access to additional Checkout.com API features. [1] [2] [3] [4] [5] [6]
New Features: Sub-Entity Members & Reserve Rules
- Added methods to
AccountsClientfor managing sub-entity members (retrieving and reinviting) and reserve rules (creating, retrieving, updating, and fetching details). New request and entity classes for reserve rules (CreateReserveRuleRequest,UpdateReserveRuleRequest,Rolling,HoldingDuration) were introduced. [1] [2] [3] [4] [5]
Enhancements to Accounts and Reserve Rules
- Added new methods in
AccountsClientto manage sub-entity members (retrieving and re-inviting members) and reserve rules (creating, querying, retrieving details, and updating reserve rules), along with the necessary request and entity classes (CreateReserveRuleRequest,UpdateReserveRuleRequest,Rolling,HoldingDuration). [1] [2] [3] [4] [5] [6] [7]
Identity Verification Client Integrations
- Added new clients for identity verification, AML screening, face authentication, ID document verification, and applicant management to the CheckoutApi, making these services directly accessible via the main API class, integrated new identity-related clients (
FaceAuthenticationClient,IdDocumentVerificationClient,IdentityVerificationClient,AmlScreeningClient,ApplicantsClient) intoCheckoutApi, with corresponding getter methods for each. [1] [2] [3] [4]
Forward API Secret Management
- Added secret management functionality to the ForwardClient, including methods to create, list, update, and delete secrets. New request classes for creating and updating secrets, and a metadata entity for secret information, were also introduced.
Codebase Organization
-
Moved and renamed files in the
Forwardmodule from theRequestsnamespace to theEntitiesnamespace for improved clarity and consistency. (Headers.php,MethodType.php,NetworkToken.php) [1] [2] [3]This pull request introduces several new features and improvements to the Checkout SDK, focusing on enhanced support for sub-entity management, reserve rules, and identity verification, as well as improvements to the API client for more flexible request handling. It also includes some refactoring and namespace changes for better organization. -
Refactored several
ForwardClientrequest-related classes to reside under theEntitiesnamespace instead ofRequests, improving code organization and clarity. [1] [2] [3] [4] [5] [6]
These changes collectively add significant new functionality for managing sub-entity users and reserve rules, improve the flexibility of API requests, and enhance the SDK's support for identity verification workflows.