Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
938dc04
Adding changes
buckaroo-shu May 20, 2025
41ed97d
Adding tests
buckaroo-shu May 26, 2025
d391f4e
Refactors build and test processes
buckaroo-shu Sep 16, 2025
bbd9f57
Removes Buckaroo SDK
buckaroo-shu Sep 16, 2025
4122067
Initializes the Buckaroo SDK
buckaroo-shu Sep 17, 2025
87cb7e5
Initializes payment service
buckaroo-shu Sep 17, 2025
45b5f81
Refactors Buckaroo SDK for enhanced payment processing
buckaroo-shu Sep 17, 2025
549f099
Auto stash before rebase of "refs/heads/shu-dev-redo"
buckaroo-shu Sep 17, 2025
62c8885
Auto stash before rebase of "refs/heads/shu-dev-redo"
buckaroo-shu Sep 17, 2025
4dcf92a
Merge remote-tracking branch 'origin/shu-dev-redo' into shu-dev-redo
buckaroo-shu Sep 17, 2025
0a18715
Refactors HTTP client for improved flexibility
buckaroo-shu Sep 17, 2025
3716331
Adds docker-compose and environment variables
buckaroo-shu Oct 14, 2025
f3c926a
Adds logging observer to Buckaroo SDK
buckaroo-shu Oct 14, 2025
5ef1cf2
Introduces Buckaroo app wrapper
buckaroo-shu Oct 20, 2025
f5dd0c5
Refactors payment processing for unified API
buckaroo-shu Oct 20, 2025
36883f8
Refactors payment processing for flexibility
buckaroo-shu Oct 20, 2025
23c5ec7
Enhances payment processing and response handling
buckaroo-shu Oct 20, 2025
213dc66
Simplifies payment method detection.
buckaroo-shu Oct 20, 2025
476615e
Adds payFastCheckout functionality to iDEAL
buckaroo-shu Oct 20, 2025
94b3ab2
Refactors transaction posting logic
buckaroo-shu Oct 22, 2025
3b9b0d9
Adds payment method builders and capabilities
buckaroo-shu Oct 22, 2025
288e137
Adds Alipay payment method integration
buckaroo-shu Oct 22, 2025
cb93704
Improves payment method detection and parameter handling
buckaroo-shu Oct 22, 2025
fdd32ef
Adds Apple Pay and Bancontact payment methods
buckaroo-shu Oct 22, 2025
07677ba
Adds payment method builders and validation
buckaroo-shu Oct 23, 2025
c663f14
Refactors payment parameter validation.
buckaroo-shu Oct 23, 2025
3420904
Improves payment builder with validation
buckaroo-shu Oct 23, 2025
4ccdadd
Adds encrypted payment capabilities
buckaroo-shu Oct 23, 2025
bbcbfbe
Adds payment method fallback and capture
buckaroo-shu Oct 24, 2025
04acb76
Adds new payment method builders
buckaroo-shu Nov 10, 2025
f836b1f
Enables grouped service parameters in PaymentBuilder
buckaroo-shu Jan 21, 2026
cd8276d
Adds new payment method builders
buckaroo-shu Jan 21, 2026
811a4ac
Refactors builder architecture for payments/solutions
buckaroo-shu Jan 26, 2026
e3c2c63
feat: add push url support and deferred annotations
vildanbina Apr 3, 2026
72b53a7
Merge pull request #2 from buckaroo-it/feature/push-url-and-annotations
vildanbina Apr 3, 2026
a2b63bb
feat: register billink builder in payment method factory
vildanbina Apr 5, 2026
fac1ae2
feat: add confirm_credential method to BuckarooClient
vildanbina Apr 5, 2026
3d70ae0
Merge pull request #3 from buckaroo-it/feat/confirm-credential
vildanbina Apr 7, 2026
b78d567
feat: add support for payment with token in CreditcardBuilder and upd…
vildanbina Apr 8, 2026
7ce4299
feat: add cancelAuthorize method to AuthorizeCaptureCapable and autho…
vildanbina Apr 8, 2026
9ea97c7
feat: phase 1 foundations — tests + sdk hooks at 100% cov
vildanbina Apr 14, 2026
ec833f9
feat: phase 2 — http strategies + mockbuckaroo harness at 100% cov
vildanbina Apr 15, 2026
ab0a5d9
feat: phase 3 — http client + observers at 100% cov
vildanbina Apr 15, 2026
1d6b7cb
feat: phase 4 — builder bases + capability mixins at 100% cov
vildanbina Apr 15, 2026
1c3df22
feat: phase 6 — factories at 100% cov
vildanbina Apr 15, 2026
4a319e5
feat: phase 5 — services + parameter validator at 100% cov
vildanbina Apr 15, 2026
66785ec
feat: phase 7 — concrete builders at 100% cov
vildanbina Apr 16, 2026
29d9bca
feat: phase 8 — entry points at 100% cov
vildanbina Apr 16, 2026
5cefca7
feat: phase 9 — feature tests per payment method at 100% cov
vildanbina Apr 16, 2026
c1ab5a2
fix: resolve 30 confirmed test suite audit findings
vildanbina Apr 16, 2026
30aef13
fix: resolve 3 source bugs behind 5 xfail tests
vildanbina Apr 16, 2026
9f5c65f
feat: implement CI workflow and enhance test helpers for improved cov…
vildanbina Apr 20, 2026
601070d
refactor: payment builder tests to utilize populate_required_fields f…
vildanbina Apr 20, 2026
1074a87
refactor: payment tests to use standard payload helper
vildanbina Apr 20, 2026
e339e21
refactor: payment tests to use assert_pay_returns_pending_with_redire…
vildanbina Apr 20, 2026
8cdbda0
refactor: streamline payment tests to utilize new helper methods for …
vildanbina Apr 20, 2026
2fffc64
refactor: payment builder tests to remove capability mixin assertions
vildanbina Apr 20, 2026
62da461
refactor: update mock strategy fixture and improve error message form…
vildanbina Apr 20, 2026
67a6b6f
refactor: enhance recording mock utilities and add wire-level asserti…
vildanbina Apr 20, 2026
d6de9db
refactor: streamline payment request handling and update test cases f…
vildanbina Apr 20, 2026
81a6ae8
refactor: polish test helpers, tighten sdk correctness, enforce lint
vildanbina Apr 21, 2026
6fec559
refactor: remove outdated test suite audit report
vildanbina Apr 21, 2026
7a7b7dd
refactor: update Python version compatibility in CI, setup, and confi…
vildanbina Apr 21, 2026
e95aa33
Merge pull request #4 from buckaroo-it/testsuite
vildanbina Apr 22, 2026
ef29d8e
refactor: enhance KlarnaBuilder to support reserve and cancel reserva…
vildanbina Apr 28, 2026
3aeab56
refactor: harden error parser and drop dead capture mixin
vildanbina May 4, 2026
70aeeae
feat: add reply validators and hosted fields oauth service
vildanbina May 4, 2026
f7c51e1
refactor: change PaymentData required field to False in ApplePayBuilder
vildanbina May 8, 2026
18921a2
chore: prepare v0.1.0 release for PyPI publish
vildanbina May 12, 2026
d5a9970
docs: add Python SDK logo to README header
vildanbina May 12, 2026
6901477
chore: rename PyPI package to buckaroo-sdk
vildanbina May 12, 2026
e55bb4b
docs: list BTI and BA tickets in 0.1.0 changelog
vildanbina May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 11 additions & 11 deletions .env.example
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
BPE_WEBSITE="Example.com"
BPE_WEBSITE_KEY="KEY"
BPE_SECRET_KEY="SECRET"
BPE_MODE="test"
BPE_DEBUG=true
BPE_REPORT_ERROR=true
# Buckaroo API Credentials
BUCKAROO_STORE_KEY=your_store_key_here
BUCKAROO_SECRET_KEY=your_secret_key_here

BPE_EXAMPLE_BASE_URL="https://example.com/buckaroo/"
BPE_EXAMPLE_RETURN_URL="${BPE_EXAMPLE_BASE_URL}return"
BPE_EXAMPLE_PUSH_URL="${BPE_EXAMPLE_BASE_URL}push"
BPE_EXAMPLE_IP="127.0.0.1"
BPE_EXAMPLE_CURRENCY_CODE="EUR"
# Logging Configuration (optional)
BUCKAROO_LOG_LEVEL=DEBUG
BUCKAROO_LOG_DESTINATION=both
BUCKAROO_LOG_FILE=buckaroo_sdk.log
BUCKAROO_LOG_MASK_SENSITIVE=true

# Copy this file to .env and fill in your actual credentials:
# cp .env.example .env
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Normalize line endings to LF on checkout + commit regardless of host platform.
* text=auto eol=lf
*.py text eol=lf
33 changes: 33 additions & 0 deletions .github/workflows/codestyle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Code Style

on:
pull_request:

concurrency:
group: codestyle-${{ github.ref }}
cancel-in-progress: true

jobs:
ruff:
runs-on: ubuntu-latest

name: Ruff

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: pip

- name: Install Ruff
run: pip install ruff

- name: Run Ruff check
run: ruff check .

- name: Run Ruff format check
run: ruff format --check .
27 changes: 0 additions & 27 deletions .github/workflows/lint.yml

This file was deleted.

79 changes: 79 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Publish

on:
push:
tags: ["v*"]
workflow_dispatch:
inputs:
target:
description: Target repository
required: true
default: testpypi
type: choice
options:
- testpypi
- pypi

concurrency:
group: publish-${{ github.ref }}
cancel-in-progress: false

jobs:
build:
name: Build distributions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: pip

- name: Install build tooling
run: pip install --upgrade build twine

- name: Build sdist + wheel
run: python -m build

- name: Verify metadata
run: twine check dist/*

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
if-no-files-found: error

publish-pypi:
name: Publish to PyPI
needs: build
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.target == 'pypi')
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- uses: pypa/gh-action-pypi-publish@release/v1

publish-testpypi:
name: Publish to TestPyPI
needs: build
if: github.event_name == 'workflow_dispatch' && inputs.target == 'testpypi'
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
37 changes: 37 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Tests

on:
pull_request:

concurrency:
group: tests-${{ github.ref }}
cancel-in-progress: true

jobs:
tests:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

name: Python ${{ matrix.python-version }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip

- name: Install dependencies
run: |
pip install -r requirements-dev.txt
pip install -e .

- name: Run tests
run: pytest --cov=buckaroo --cov-report=term-missing
24 changes: 19 additions & 5 deletions .gitignore
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
Dockerfile
docker-compose.yml
.mypy_cache/
.venv/
*__pycache__/
# build artifacts
/build
/dist
/*.egg-info
*.egg-info/
/.eggs

# test and local dev artifacts
/.pytest_cache
/.coverage
htmlcov/
.tox/
/.idea
.DS_Store
__pycache__/
*.pyc
.env

*.log
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Changelog

All notable changes to this project will be documented in this file.

---

## [Released]

## [0.1.0]
- BA-510 Initial setup
- 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
- 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-995 Add payment method: Belfius
- BA-996 Add payment method: Billink
- 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: Multibanco
- 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
21 changes: 21 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Contribution Guidelines

### Repository setup:
- Fork the repository to your account
- more details about [how to fork a repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) can be found [here](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo):

### Making changes:
- create a branch from develop branch
- name of the branch shoul be something like: `feature/GITHUB-ISSUE-ID-slug` (eg: `feature/50-configprovider-update`)
- including unit tests is encouraged

### Pull Request:
- open the PR to develop branch
- if there is no issue referenced, add a description about the problem and the way it is being solved
- Allow edits from maintainers


### Contribution to refactoring:
- include unit tests
- open the Pull Request
- check that git workflows checks have passed
2 changes: 1 addition & 1 deletion LICENSE → LICENSE.txt
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 Buckaroo
Copyright (c) 2025 Buckaroo

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
8 changes: 8 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
include README.md
include LICENSE.txt
include CHANGELOG.md
include CONTRIBUTING.md
include requirements.txt
recursive-include buckaroo *.py py.typed
global-exclude __pycache__
global-exclude *.pyc
Loading
Loading