Skip to content

Release 0.1.0#5

Merged
vildanbina merged 72 commits into
masterfrom
develop
May 12, 2026
Merged

Release 0.1.0#5
vildanbina merged 72 commits into
masterfrom
develop

Conversation

@vildanbina
Copy link
Copy Markdown
Collaborator

@vildanbina vildanbina commented May 12, 2026

  • BTI-9 Core SDK setup
  • BTI-10 Buckaroo API integration
  • BTI-11 Specific payment model
  • BTI-13 Documentation
  • BTI-14 Webhook / PUSH handler
  • BTI-15 Unit testing
  • BA-510 Initial setup
  • BTI-841 Add a test suite
  • BA-992 Add payment method: Alipay
  • BA-993 Add payment method: Apple Pay
  • BA-994 Add payment method: Bancontact
  • BA-996 Add payment method: Billink
  • BA-995 Add payment method: Belfius
  • BA-999 Add payment method: Bizum
  • BA-1000 Add payment method: Blik
  • BA-1001 Add payment method: Buckaroo Voucher
  • BA-1002 Add payment method: Click to Pay
  • BA-1003 Add payment method: Creditcards
  • BA-1004 Add payment method: EPS
  • BA-1005 Add payment method: Giftcards
  • BA-1006 Add payment method: goSettle
  • BA-1007 Add payment method: Google Pay
  • BA-1008 Add payment method: External Payment
  • BA-1009 Add payment method: iDEAL | Wero
  • BA-1010 Add payment method: iDEAL | Wero QR
  • BA-1011 Add payment method: In3
  • BA-1012 Add payment method: KBC
  • BA-1013 Add payment method: Klarna KP
  • BA-1014 Add payment method: Klarna
  • BA-1015 Add payment method: MB Way
  • BA-1016 Add payment method: MBultibanco
  • BA-1017 Add payment method: Pay by Bank
  • BA-1018 Add payment method: Payconiq
  • BA-1019 Add payment method: PayPal
  • BA-1020 Add payment method: Przelewy24
  • BA-1021 Add payment method: Riverty
  • BA-1022 Add payment method: Sepa Direct Debit
  • BA-1023 Add payment method: Swish
  • BA-1024 Add payment method: Transfer
  • BA-1025 Add payment method: Trustly
  • BA-1026 Add payment method: Twint
  • BA-1027 Add payment method: Wero
  • BA-1028 Add payment method: WeChat Pay
  • BA-1029 Add payment method: Vouchers

Consolidates linting and testing into separate workflows for clarity and efficiency.

Migrates from `requirements.txt` to `setup.py` and `test_requirements.txt` for better dependency management.

Adds `.vscode/` to `.gitignore` to exclude editor settings.
Adds a py.typed file to enable type checking.
Includes more python versions to testing process and sets minimum test coverage.

Updates docstrings in `Client.set_config`.
Fixes file reading errors in tests
This commit removes the Buckaroo SDK, effectively deleting all related code, configuration, tests, and documentation.
This indicates a decision to discontinue the project or replace it with an alternative solution.
Sets up the basic project structure for the Buckaroo Python SDK.

This commit includes:
- Project setup with setup.py
- Basic file structure
- Initial .gitignore configuration
- Dockerfile and docker-compose.yml for development environment
- Basic exception classes and client authentication

This provides a foundation for future development.
Creates a payment service and associates it with the Buckaroo client.
This prepares the codebase for future payment-related functionality.
This commit introduces a comprehensive refactor of the Buckaroo SDK,
introducing factories and builders for streamlined payment processing.

It adds support for iDEAL QR and Apple Pay payments, along with
configuration options for different environments,
and improves HTTP request handling with HMAC authentication and retry logic.

The changes enhance code organization, readability, and maintainability,
while providing a more robust and flexible payment processing system.
Introduces a strategy pattern for the HTTP client, allowing different HTTP implementations (e.g., requests, curl) to be used.

This enhances the library's flexibility and testability by decoupling the HTTP client from specific HTTP libraries.
Sets up docker-compose for local development.
Loads credentials from environment variables for security.
Adds .env.example file to show the variables required.
Introduces a comprehensive logging observer to the Buckaroo SDK.

This observer provides detailed logging for HTTP requests, responses, exceptions, and general SDK operations. It supports multiple output destinations (stdout, file, or both) with configurable log levels, formats, and sensitive data masking.

Includes example usage and environment variable configuration.
Removes outdated demo file.
Adds a high-level application wrapper for the Buckaroo SDK, simplifying common operations such as logging, configuration management, and payment creation.

The wrapper provides convenient methods for initializing the SDK from environment variables or with custom configurations. It also includes automatic logging setup based on the provided configuration.

This change removes the example files, test files, and several other examples to streamline the repository and reflect the refactored structure. It adds new example files to demonstrate the app wrapper's use.
Introduces a new payment method factory for dynamic builder creation.
Removes individual payment builders and centralizes logic.
Improves payment operation handling with automatic detection.
Simplifies the API to use a single entry point for payment actions.
Streamlines payment creation and processing by removing direct payment and execute methods from the main class and centralizing payment logic within the builder. This change enhances flexibility by allowing payment methods and operations to be determined dynamically from the payload and simplifies the process of executing refund, capture, and cancel operations.

The PaymentBuilder now accepts an original payload, enabling simplified method calls for operations like refund and capture. It also includes validation to ensure necessary information is provided.

Includes enhancements for handling HTTP responses and checking Buckaroo-specific success indicators.
Improves payment processing by ensuring `None` responses from the Buckaroo API are handled gracefully, preventing errors.
Specifically, it updates the payment builder to return a `PaymentResponse` object with empty data when the HTTP client returns `None`,
which allows for more robust error handling in calling code.

Also enhances the `BuckarooResponse` and `StatusCode` to handle cases where the response structure is nested or incomplete,
avoiding `NoneType` errors and ensuring accurate status code and message retrieval.

These changes improve the stability and reliability of payment operations,
especially for refund, capture, and cancel actions.

The IdealBuilder typehints are corrected from IdealPaymentBuilder to IdealBuilder

Also removes dead code from the examples directory.
Streamlines payment method detection by removing auto-detection logic and requiring the 'method' parameter in the payload.

This change enforces explicit declaration of the payment method, enhancing predictability and reducing ambiguity in payment processing.

The demo app has been updated to align with the change of requiring the `method` parameter.
Implements a new `payFastCheckout` method for the iDEAL payment builder, enabling a streamlined checkout experience.

The method constructs a payment request, sends it to the Buckaroo API, and returns a structured payment response.

Also updates the demo application to use the new functionality.
Consolidates transaction posting logic into a single helper
method to reduce code duplication and improve maintainability.

This change centralizes the process of sending transaction
requests to the Buckaroo API and handling the responses.
Implements payment method builders for iDEAL, Credit Card, Sofort, and Payconiq.

Introduces capability mixins for features like instant refunds and fast checkout to allow more modular implementation and to reflect each payment method's capabilities accurately.

Adds a `SolutionService` to expose payment creation functionality.
Introduces Alipay as a supported payment method. This includes the builder, capabilities, and factory integration.

This enables merchants to offer Alipay as a payment option to their customers.

The Alipay builder includes a method to specify mobile view preference.
Enhances payment method detection by checking the 'Services.ServiceList' in the payload.
This allows the system to identify the payment method even if the 'method' field is missing.

Also, this update ensures correct handling of the 'UseMobileView' parameter in the Alipay builder, making it case-insensitive and converting boolean values to lowercase strings for API compatibility.
Parameters are now added as Parameter objects with string values, ensuring correct data types for external APIs.
Implements the Apple Pay and Bancontact payment methods, adding corresponding builders and updating the payment method factory. This enhancement expands payment options.

The change also fixes a bug in demo app wrapper where method was set to alipay, instead of bancontact and added PaymentData, CustomerCardName and issuer fields.
This commit introduces new payment method builders for Bancontact and Creditcard, and enhances existing builders (Alipay, ApplePay, Ideal, Sofort, Payconiq) with parameter validation. It also ensures each builder defines allowed service parameters based on the action being performed (Pay, Refund, Authorize, etc.). Parameters are validated against allowed types and values, and invalid parameters are filtered out with a warning message.
These changes improve the robustness and flexibility of the payment processing system.
Improves payment processing by extracting service parameter validation into a dedicated class.

This change introduces a `ServiceParameterValidator` to encapsulate the logic for validating and filtering service parameters. This promotes better code organization, reusability, and testability.

It also addresses an issue with parameter validation, where it did not appropriately normalize and sanitize parameter names, which led to incorrect validation and filtering of allowed parameters. The fixes ensures parameters are correctly normalized and string representations of booleans are converted back into booleans for proper type validation.
Adds new payment methods (Alipay, ApplePay, Belfius, Bizum, Blik,
BuckarooVoucher, ClickToPay) and implements strict parameter
validation for payment builders.  This ensures that payment requests
cannot be built without essential service-specific parameters and
also improves parameter validation overall. Introduces new exceptions
for validation errors and allows for flexible validation modes
(strict and non-strict).  Also renames creditcard_builder to
credit_card_builder for consistency.
Introduces encrypted payment processing functionality for credit cards.

Adds `EncryptedPayCapable` mixin and `CreditcardBuilder` to support
encrypted card data payments, and payment with security code. This
enhances security by allowing encrypted card details to be used instead
of raw card data.
Implements a default payment method fallback in the payment method factory,
handling unsupported or unspecified methods gracefully.  This prevents errors
and ensures the system remains operational when encountering unexpected
payment types.

Introduces capture functionality for credit card payments, allowing to
capture previously authorized payments.

Renames "AuthorizeCapable" to "AuthorizeCaptureCapable" to align with added capture functionality.
Adds new payment method builders for Giftcards, GooglePay, In3, and Knaken.
Also adds an EPS payment builder.

Introduces mixins for fast checkout and instant refund capabilities, and refactors existing payment builders to utilize them.
Updates the payment method factory to include the new builders.

Renames `pay_fast_checkout` to `payFastCheckout` and `instant_refund` to `instantRefund` for consistency.

The addition of these new payment methods expands the platform's payment processing capabilities.
vildanbina and others added 26 commits April 15, 2026 16:39
Fix misnamed tests, remove duplicates, add missing assertions,
merge KlarnaKP dead code, mark known bugs as xfail, fix Klarna
copy-paste, add refund/cancel/403 coverage, fix style inconsistencies.
1744 passed, 0 skipped, 0 failures, 100% coverage.
- Lowercase externalPayment registry key so create_builder() finds it
- Handle timeout=None in requests strategy error message
- Mask Values paired with sensitive Names in Buckaroo Parameters lists
BTI-841: Full test suite with 100% coverage and SDK correctness fixes
…tion actions with updated service parameters
@vildanbina vildanbina merged commit e606c4a into master May 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants