SDK Python
Biblioteca oficial de iPagos para Python 3.10+. Compatible con Django, FastAPI, Flask y scripts standalone.
Instalación
pip install ipagos
# o
poetry add ipagos
# o
uv add ipagos
Inicialización
import os
import ipagos
client = ipagos.Client(
secret_key=os.environ["IPAGOS_SECRET_KEY"],
api_version="2026-01-15",
max_retries=3,
)
Crear un pago (sincrónico)
import uuid
payment = client.payments.create(
amount=25000,
currency="MXN",
source="tok_visa_4242",
description="Pedido #1042",
metadata={"order_id": "1042"},
idempotency_key=str(uuid.uuid4()),
)
print(payment.id, payment.status)
Asíncrono (asyncio)
import asyncio
import ipagos.aio
async def main():
async with ipagos.aio.Client(secret_key="sk_sandbox_...") as client:
payment = await client.payments.create(
amount=25000, currency="MXN", source="tok_visa_4242",
)
print(payment.id)
asyncio.run(main())
Verificar webhooks
from ipagos.webhooks import verify_signature, SignatureInvalid
@app.post("/webhooks/ipagos")
async def receive(request):
raw = await request.body()
header = request.headers["ipagos-signature"]
try:
event = verify_signature(raw, header, secret=WHSEC)
except SignatureInvalid:
return Response(status_code=400)
if event.type == "payment.approved":
await mark_paid(event.data.object.id)
return {"ok": True}