From 4fe1a4acefdee5ffd83254bc84e0d4158204e5ef Mon Sep 17 00:00:00 2001 From: Nguyen Ngo Date: Sun, 31 May 2026 22:54:23 -0400 Subject: [PATCH] 05/31 Fix teller webhook endpoint --- app/routes/teller.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/routes/teller.py b/app/routes/teller.py index 7469696..0cb95c8 100644 --- a/app/routes/teller.py +++ b/app/routes/teller.py @@ -262,7 +262,7 @@ def disconnect(enrollment_db_id): # ── Webhook: transactions.processed ────────────────────────────────────────── -@teller_bp.route('/webhook', methods=['POST']) +@teller_bp.route('/webhook', methods=['GET', 'POST']) @_csrf.exempt def webhook(): """ @@ -280,6 +280,10 @@ def webhook(): log.warning('[teller] webhook signature mismatch') return jsonify({'error': 'Invalid signature'}), 401 + # Teller sends GET to verify the endpoint is reachable + if request.method == 'GET': + return jsonify({'status': 'ok', 'service': 'pfm-teller-webhook'}), 200 + payload = request.get_json() if not payload: return jsonify({'error': 'No payload'}), 400 @@ -294,4 +298,4 @@ def webhook(): # Just log — user syncs manually via UI preview flow log.info(f'[teller] new transactions available for enrollment {enrollment_id}') - return jsonify({'status': 'received'}), 200 + return jsonify({'status': 'received'}), 200 \ No newline at end of file