Adyen Python API Library v15.0.0
·
3 commits
to main
since this release
Breaking Changes π
- Python version floor raised to 3.8: Support for Python 2.7 and 3.6 has been dropped; the library now requires Python β₯ 3.8, so integrations running on older runtimes must upgrade before migrating to this release. (#421) β @thomasc-adyen
- Recurring API base URL migrated to
paltokenizationdomain: The test and live endpoint forRecurringApichanged frompal-{env}.adyen.com/pal/servlet/Recurring/v68topaltokenization-{env}.adyen.com/paltokenization/servlet/Recurring/v68; any environment-specific URL overrides that hard-coded the old host will need to be updated. (#463, #466) β @AdyenAutomationBot (merged by @thomasc-adyen), @thomasc-adyen
New Features π
Capital API
- New
AdyenCapitalApiservice: Introduces the Capital service to the SDK, exposingGrantAccountsApi,GrantOffersApi, andGrantsApisub-clients, allowing developers to programmatically access Adyen Capital grant management without building raw HTTP calls. (#409) β @jeandersonbc - New
DynamicOffersApi: Addsget_all_dynamic_offers,calculate_preliminary_offer_from_dynamic_offer, andcreate_static_offer_from_dynamic_offerendpoints so integrators can retrieve and act on flexible financing offers in real time. (#465, #466) β @AdyenAutomationBot (merged by @thomasc-adyen), @thomasc-adyen GrantsApiexpanded with disbursement endpoints: Addsget_all_grant_disbursements,get_grant_disbursement, andupdate_grant_disbursementmethods toGrantsApi, giving integrators visibility into individual disbursement records for active grants. (#465) β @AdyenAutomationBot (merged by @thomasc-adyen)
Balance Platform
- New
DirectDebitMandatesApi: Exposesget_list_of_mandates,get_mandate_by_id,cancel_mandate, andupdate_mandateonAdyenBalancePlatformApi, enabling full lifecycle management of direct debit mandates without manual REST calls. (#464, #466) β @AdyenAutomationBot (merged by @thomasc-adyen), @thomasc-adyen - New
SCAAssociationManagementApi: Addslist_associations,approve_association, andremove_associationmethods to manage Strong Customer Authentication device associations via the Balance Platform API. (#464) β @AdyenAutomationBot (merged by @thomasc-adyen) - New
SCADeviceManagementApi: Addsbegin_sca_device_registration,finish_sca_device_registration, andsubmit_sca_associationmethods, providing a complete SCA device registration flow through the SDK. (#464) β @AdyenAutomationBot (merged by @thomasc-adyen)
POS Mobile
AdyenPosMobileApinow exported from the top-levelAdyenmodule:AdyenPosMobileApiand itscreate_communication_sessionmethod are now accessible directly via the mainAdyennamespace, fixing an omission that forced users to import the class from an internal sub-package. (#414) β @jeandersonbc
Client
application_nameparameter inAdyenClient: Passingapplication_nametoAdyenClient.__init__now prepends the provided name to theUser-Agentheader on every outgoing request, making it easier to identify integrations in Adyen support logs. (#408) β @gcatanese
Code Generation
- Automated model/service updates for Checkout, Balance Platform, Legal Entity Management, and Recurring (January 2026): Regenerated services and models aligned with the latest
adyen-openapispecification snapshots, keeping field definitions and enum values up to date with the Adyen platform. (#410, #411, #412, #413) β @AdyenAutomationBot (merged by @jeandersonbc), @AdyenAutomationBot (merged by @galesky-a) - Automated model/service updates for PosMobile (February 2026): Regenerated PosMobile service from the latest OpenAPI spec, applying code-formatting improvements consistent with the new ruff style. (#415) β @AdyenAutomationBot (merged by @gcatanese)
Fixes βοΈ
- Pin GitHub Actions to immutable commit SHAs: All six CI workflow files now reference actions by their full commit SHA rather than mutable version tags, eliminating the supply-chain risk of an action author's account being compromised. (#405, #406) β @app/copilot-swe-agent (merged by @gcatanese)
- CI format action now sourced from
pyproject.toml: The GitHub Actions formatting step was updated to derive theruffversion frompyproject.tomlrather than hard-coding it, ensuring the CI tool version stays in sync with the project's declared dev dependency. (#462) β @thomasc-adyen - Fix Python constructor templates to use
super()without arguments: Code generation templates updated to emitsuper().__init__()instead of the legacysuper(ClassName, self).__init__()form, which was syntactically redundant in Python 3 and flagged by linters. (#444) β @thomasc-adyen - Fix
pyproject.tomlmetadata and workflow action alignment: Aligns thepyproject.tomlversion field with the release version to prevent duplicate-version PyPI publish errors, and pins workflow actions to current immutable SHAs for consistency. (#468) β @thomasc-adyen
Contributor Notes π§
pyproject.tomlintroduced as primary packaging manifest: A newpyproject.tomlreplaces the sole reliance onsetup.py, consolidating build metadata,ruffconfiguration, coverage settings, and optional dependency groups (requests,pycurl,test,dev) in one PEP 517-compliant file. (#423, #467, #468) β @thomasc-adyenruffreplacespylint/pycodestylefor linting: The project now usesruff>=0.4.4(configured inpyproject.toml) together with a.pre-commit-config.yamlhook, providing faster, more consistent code quality checks and automated formatting on commit. (#423) β @thomasc-adyen- SDK modernized to Python 3.8+ style: All service classes,
AdyenClient,AdyenResult,HTTPClient, andutilnow use Python 3-native syntax β PEP 484 type hints,from __future__ import annotations, class-freesuper(), and f-string cleanups β making the codebase easier to read and contribute to. (#421) β @thomasc-adyen AGENTS.mdadded for AI-assisted contributors: A newAGENTS.mdfile documents project structure and conventions so that AI coding agents can understand and respect the project's architecture when making contributions. (#403) β @galesky-a- CI:
actions/checkoutupgraded to v6: Both the Renovate-automated and manual bumps bring the checkout action to its latest major version for improved reliability and security. (#402, #427) β @app/renovate (merged by @jeandersonbc), @app/renovate (merged by @thomasc-adyen) - CI:
actions/cacheupgraded to v5: Updates the cache action to the latest major version, reducing dependency on deprecated APIs. (#426) β @app/renovate (merged by @thomasc-adyen) - CI:
actions/labelerupgraded to v6: Keeps the issue/PR labeling workflow on a supported version. (#382) β @app/renovate (merged by @galesky-a) - CI:
actions/staleupgraded to v10: Bumps the stale-issue action to its latest major version. (#380) β @app/renovate (merged by @gcatanese) - CI: Python test matrix updated to 3.14: The CI workflow now tests against Python 3.14, ensuring compatibility with the latest Python release. (#366) β @app/renovate (merged by @galesky-a)
- CI:
Adyen/release-automation-actionupgraded to v1.4.0: Keeps the release tooling on the latest supported minor version. (#374) β @app/renovate (merged by @gcatanese)
Other Changes ποΈ
- Release workflow now only runs on merged PRs: The release job condition now checks
github.event.pull_request.merged == true, preventing accidental release runs when PRs are simply closed without merging. (#404) β @gcatanese - CI:
merge_grouptrigger added topython-ci.yml: The CI workflow now also runs on GitHub merge queue events, enabling safer branch protection with merge queues. (#417) β @gcatanese - CODEOWNERS updated:
@Adyen/developer-relationswas removed from CODEOWNERS, leaving@Adyen/api-library-maintainersas the sole reviewer group, which streamlines the review process. (#469) β @gcatanese
New Contributors π
- @jeandersonbc made their first contribution in #409 β Introduced the Capital API service, giving the SDK full coverage of Adyen Capital grant management endpoints including dynamic offers, grant accounts, and disbursements.
- @thomasc-adyen made their first contribution in #421 β Drove the modernization of the SDK to a Python 3.8+ baseline, setting the stage for the addition of pydantic, ruff, and the broader tooling overhaul in this release.
All Changes
Full Changelog: v14.0.0...v15.0.0
| PR | Title | Author |
|---|---|---|
| #469 | Remove @Adyen/developer-relations from CODEOWNERS | @gcatanese |
| #468 | fix(release): align package metadata and workflow action pins | @thomasc-adyen |
| #467 | IEX-2493 add pydantic v2 as core dependency | @thomasc-adyen |
| #466 | IEX-2498 add endpoint coverage for new capital, mandates, and recurring URL flows | @thomasc-adyen |
| #465 | [capital] Code generation: update services and models | @AdyenAutomationBot (merged by @thomasc-adyen) |
| #464 | [balanceplatform] Code generation: update services and models | @AdyenAutomationBot (merged by @thomasc-adyen) |
| #463 | [recurring] Code generation: update services and models | @AdyenAutomationBot (merged by @thomasc-adyen) |
| #462 | FIX - update Github actions to have format action in place for generated code | @thomasc-adyen |
| #444 | IEX-2360 update template generation for Python3 constructors | @thomasc-adyen |
| #427 | chore(deps): update actions/checkout action to v6 | @app/renovate (merged by @thomasc-adyen) |
| #426 | chore(deps): update actions/cache action to v5 | @app/renovate (merged by @thomasc-adyen) |
| #423 | feat: introduce ruff for linting and code quality | @thomasc-adyen |
| #421 | chore: modernize SDK to Python 3.8+ baseline | @thomasc-adyen |
| #417 | Update CI workflow to add merge_group | @gcatanese |
| #415 | [posmobile] Code generation: update services and models | @AdyenAutomationBot (merged by @gcatanese) |
| #414 | FIX export posMobile and add test coverage | @jeandersonbc |
| #413 | [legalentitymanagement] Code generation: update services and models | @AdyenAutomationBot (merged by @jeandersonbc) |
| #412 | [checkout] Code generation: update services and models | @AdyenAutomationBot (merged by @jeandersonbc) |
| #411 | [balanceplatform] Code generation: update services and models | @AdyenAutomationBot (merged by @jeandersonbc) |
| #410 | [recurring] Code generation: update services and models | @AdyenAutomationBot (merged by @galesky-a) |
| #409 | Introduce Capital API Service | @jeandersonbc |
| #408 | Support application_name in User-Agent | @gcatanese |
| #406 | Pin GitHub Actions to immutable commit SHAs | @app/copilot-swe-agent (merged by @gcatanese) |
| #404 | Release workflow: run on merged PRs | @gcatanese |
| #403 | AGENTS.md for contributors | @galesky-a |
| #402 | chore(deps): update actions/checkout action to v6 | @app/renovate (merged by @jeandersonbc) |
| #396 | Release v15.0.0 | @AdyenAutomationBot (merged by @thomasc-adyen) |
| #382 | chore(deps): update actions/labeler action to v6 | @app/renovate (merged by @galesky-a) |
| #380 | Update actions/stale action to v10 | @app/renovate (merged by @gcatanese) |
| #374 | Update Adyen/release-automation-action action to v1.4.0 | @app/renovate (merged by @gcatanese) |
| #366 | chore(deps): update dependency python to 3.14 | @app/renovate (merged by @galesky-a) |