Release 0.1.0#5
Merged
Merged
Conversation
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.
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
…refunds and fast checkouts
…ons for payment methods
…or improved clarity and consistency
BTI-841: Full test suite with 100% coverage and SDK correctness fixes
…tion actions with updated service parameters
gentiprenaj
approved these changes
May 12, 2026
AlbinaBaraliu
approved these changes
May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.