Releases: bilouro/eupago-python
Release list
v0.5.4
v0.5.4
Minor release. No breaking changes.
Added
- Apple Pay / Google Pay hosted flow — the wallet token is now optional on
apple_pay.create_payment/google_pay.create_payment. Omit it and eupago serves the wallet sheet, returning aredirectUrl(asPaymentResult.payment_url) — no Apple Developer account / Google Pay merchant id needed on your side. The native token flow is unchanged. eupago.utils.redact_pii()— public helper masking phone/email/NIF in strings or nested payloads, for persisting webhook/API payloads without accumulating PII.- Docs: "Persisting payments" recipe (Postgres + DynamoDB reference schema, lifecycle state machine, quirks checklist) and a Security guide (PCI/SAQ A, credential blast radius, webhook hardening), both EN+PT.
Validated (sandbox, 2026-07-04)
- Credit Card Auth & Capture and Subscription (register → charge) now pass live on the demo channel.
- Google Pay hosted flow full E2E (webhook PAID) — from 2026-06-12.
- MB WAY Auth & Capture still returns
BAD_REQUEST(feature not enabled by eupago); Apple Pay hosted sheet still blocked by sandbox merchant-validation (400). Both are eupago-side, not SDK issues.
Full changelog: https://github.com/bilouro/eupago-python/blob/main/CHANGELOG.md
v0.5.3 — docs URLs on custom domain
Metadata-only release. No SDK behaviour changes.
Updates the public links in the PyPI project metadata to point at the new canonical documentation home: https://eupago.bilouro.com/ (Portuguese: https://eupago.bilouro.com/pt/).
The docs site was moved off bilouro.github.io/eupago-python/ to bypass a known GitHub Pages limitation where Google Search Console systematically can't fetch sitemaps from project sites under shared github.io subdomains.
pip install --upgrade eupagov0.5.2 — SEO + discoverability
Metadata + SEO release. No SDK behaviour changes.
- PyPI: longer description, 24 keywords, more classifiers (Beta dev status, Pydantic + AsyncIO frameworks, Portuguese natural language), Source/Discussions/Releases/Funding URLs added.
- Docs: Open Graph cards via mkdocs-material social plugin; JSON-LD SoftwareApplication structured data; robots.txt.
- GitHub: 15 topics, FUNDING.yml.
pip install --upgrade eupagov0.5.1 — Python 3.9 compat + CI
Patch release. v0.5.0 was importable but unusable on Python 3.9 because Pydantic v2 can't evaluate X | None annotations on 3.9 without the eval_type_backport shim. v0.5.1 adds it as a conditional dependency.
Also lands the .github/workflows/test.yml workflow that the README CI badge was referencing since day one (the badge was a 404 link).
pip install eupago==0.5.1See CHANGELOG.md for details.
v0.5.0 — Production-validated release
First production-validated release. MB WAY, Multibanco, Pay By Link and Refunds were exercised live against a real eupago production channel — 5 real payments paid and 3 refunds emitted, all webhooks captured and verified through the SDK. Several wire-shape bugs surfaced and were fixed by the way.
Highlights
- 🚀 Production-validated end-to-end for MB WAY, Multibanco, Pay By Link, Refunds
- 📋 Subscription management on the Management API — list / get / edit / revoke
- 🔗
WebhookEvent.original_transaction_id— refund webhooks now link back to the original payment - 🔑
EupagoClient(management_bearer=...)— escape hatch while OAuth credentials are pending - 🏦
eupago.utils.bic_for_pt_iban— BIC lookup helper covering 54 PT banks (required for Multibanco refunds) - 🔄
client.refunds.get(refund_id)— poll refund settlement state
Wire-shape bugs fixed (discovered in prod)
- MB WAY rejected webhooks use
"Canceled"(US 1-L spelling) → previously fell toPENDING - Refund webhooks use
"REFUNDED"(uppercase) and method"RB:PT"→ previously dropped on the floor - Multibanco refund requires
ibanANDbic(despite docs claimingbicoptional) — definitively probed - Credit Card capture body wasn't being sent correctly
- Credit Card subscription requires nested
subscriptionblock
See CHANGELOG.md for the full list.
pip install eupago==0.5.0