Skip to content

Adyen Python API Library v15.0.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 31 Mar 09:51
· 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 paltokenization domain: The test and live endpoint for RecurringApi changed from pal-{env}.adyen.com/pal/servlet/Recurring/v68 to paltokenization-{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 AdyenCapitalApi service: Introduces the Capital service to the SDK, exposing GrantAccountsApi, GrantOffersApi, and GrantsApi sub-clients, allowing developers to programmatically access Adyen Capital grant management without building raw HTTP calls. (#409) β€” @jeandersonbc
  • New DynamicOffersApi: Adds get_all_dynamic_offers, calculate_preliminary_offer_from_dynamic_offer, and create_static_offer_from_dynamic_offer endpoints so integrators can retrieve and act on flexible financing offers in real time. (#465, #466) β€” @AdyenAutomationBot (merged by @thomasc-adyen), @thomasc-adyen
  • GrantsApi expanded with disbursement endpoints: Adds get_all_grant_disbursements, get_grant_disbursement, and update_grant_disbursement methods to GrantsApi, giving integrators visibility into individual disbursement records for active grants. (#465) β€” @AdyenAutomationBot (merged by @thomasc-adyen)

Balance Platform

  • New DirectDebitMandatesApi: Exposes get_list_of_mandates, get_mandate_by_id, cancel_mandate, and update_mandate on AdyenBalancePlatformApi, enabling full lifecycle management of direct debit mandates without manual REST calls. (#464, #466) β€” @AdyenAutomationBot (merged by @thomasc-adyen), @thomasc-adyen
  • New SCAAssociationManagementApi: Adds list_associations, approve_association, and remove_association methods to manage Strong Customer Authentication device associations via the Balance Platform API. (#464) β€” @AdyenAutomationBot (merged by @thomasc-adyen)
  • New SCADeviceManagementApi: Adds begin_sca_device_registration, finish_sca_device_registration, and submit_sca_association methods, providing a complete SCA device registration flow through the SDK. (#464) β€” @AdyenAutomationBot (merged by @thomasc-adyen)

POS Mobile

  • AdyenPosMobileApi now exported from the top-level Adyen module: AdyenPosMobileApi and its create_communication_session method are now accessible directly via the main Adyen namespace, fixing an omission that forced users to import the class from an internal sub-package. (#414) β€” @jeandersonbc

Client

  • application_name parameter in AdyenClient: Passing application_name to AdyenClient.__init__ now prepends the provided name to the User-Agent header 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-openapi specification 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 the ruff version from pyproject.toml rather 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 emit super().__init__() instead of the legacy super(ClassName, self).__init__() form, which was syntactically redundant in Python 3 and flagged by linters. (#444) β€” @thomasc-adyen
  • Fix pyproject.toml metadata and workflow action alignment: Aligns the pyproject.toml version 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.toml introduced as primary packaging manifest: A new pyproject.toml replaces the sole reliance on setup.py, consolidating build metadata, ruff configuration, coverage settings, and optional dependency groups (requests, pycurl, test, dev) in one PEP 517-compliant file. (#423, #467, #468) β€” @thomasc-adyen
  • ruff replaces pylint/pycodestyle for linting: The project now uses ruff>=0.4.4 (configured in pyproject.toml) together with a .pre-commit-config.yaml hook, 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, and util now use Python 3-native syntax β€” PEP 484 type hints, from __future__ import annotations, class-free super(), and f-string cleanups β€” making the codebase easier to read and contribute to. (#421) β€” @thomasc-adyen
  • AGENTS.md added for AI-assisted contributors: A new AGENTS.md file 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/checkout upgraded 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/cache upgraded 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/labeler upgraded to v6: Keeps the issue/PR labeling workflow on a supported version. (#382) β€” @app/renovate (merged by @galesky-a)
  • CI: actions/stale upgraded 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-action upgraded 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_group trigger added to python-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-relations was removed from CODEOWNERS, leaving @Adyen/api-library-maintainers as 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)