Instalação e Quickstart¶
Instalação¶
Requer Python 3.9+. As únicas dependências são httpx e Pydantic v2.
Primeiro pagamento¶
1. Obtém a API Key¶
No backoffice eupago, vai a Canais > Listagem de Canais e copia a API Key do canal desejado.
2. Cria o client¶
from eupago import EupagoClient
client = EupagoClient(
api_key="xxxx-xxxx-xxxx-xxxx-xxxx",
sandbox=True, # False para produção
)
3. Cria um pagamento MB WAY¶
from decimal import Decimal
payment = client.mbway.create_payment(
order_id="ORD-2026-001",
amount=Decimal("49.90"),
phone_number="912345678",
)
print(payment.transaction_id) # ID da transação
print(payment.status) # PaymentStatus.PENDING
O cliente recebe uma notificação push no telemóvel e tem 5 minutos para aprovar.
4. Recebe o webhook¶
Quando o cliente paga, a eupago envia um webhook ao teu servidor:
from eupago.webhooks import parse_webhook
event = parse_webhook(
body=request.body,
headers=request.headers,
webhook_secret="o-teu-secret",
)
if event.status == PaymentStatus.PAID:
# Actualizar encomenda como paga
...
Async¶
Todos os métodos têm variante async — mesmo client, suffix _async:
async with EupagoClient(api_key="...", sandbox=True) as client:
payment = await client.mbway.create_payment_async(
order_id="ORD-001",
amount=Decimal("49.90"),
phone_number="912345678",
)
Próximos passos¶
- Configuração — sandbox, timeout, OAuth, audit hook
- Qual método escolher? — guia de decisão
- Webhooks — receber notificações