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