# Python — Flask
import hmac, hashlib, os, time, json
from flask import request, abort
@app.post('/webhooks/pmai')
def pmai():
sig = request.headers.get('X-PMAI-Signature', '')
parts = dict(p.split('=') for p in sig.split(','))
t = int(parts.get('t', 0)); v1 = parts.get('v1', '')
if abs(time.time() - t) > 300: abort(400)
body = request.get_data(as_text=True)
expected = hmac.new(
os.environ['PMAI_WEBHOOK_SECRET'].encode(),
f'{t}.{body}'.encode(),
hashlib.sha256,
).hexdigest()
if not hmac.compare_digest(expected, v1): abort(401)
event = json.loads(body)
# ...handle event
return ('', 200)