{% extends "base.html" %} {% block title %}Bank Connections{% endblock %} {% block page_title %}Bank Connections{% endblock %} {% block topbar_actions %} {% if enrollments %}
{% endif %} {% endblock %} {% block content %} {% if enrollments %}
{% for enrollment in enrollments %} {% set accounts = enrollment.accounts.filter_by(is_active=True).all() %}
{{ enrollment.institution_name or 'Unknown Bank' }}
Connected {{ enrollment.created_at.strftime('%b %d, %Y') }} · Last synced: {{ enrollment.last_synced_at.strftime('%b %d, %H:%M') if enrollment.last_synced_at else 'Never' }}
{% for ta in accounts %}
{{ ta.account_name }} {% if ta.pfm_account %} {# Balance display — updated in-place by refreshBalance() #} {{ ta.pfm_account.balance | currency }} {% if ta.last_sync_date %} synced {{ ta.last_sync_date.strftime('%b %d') }} {% endif %} {% endif %}
{{ ta.account_subtype | replace('_',' ') | title }} {% if ta.pfm_account %} · {{ ta.pfm_account.name }} {% else %} · Not mapped {% endif %}
{% if ta.pfm_account %} Sync
{% else %} Map Account {% endif %}
{% endfor %} {% if accounts | selectattr('pfm_account_id') | list %}
{% endif %}
{% endfor %}
{% else %}
No banks connected

Connect your US bank accounts to automatically sync transactions and balances.

{% endif %}
Setup Status
Teller App ID: {% if teller_app_id %}{{ teller_app_id[:8] }}…{% else %}Not set — add TELLER_APP_ID to .env{% endif %}
Certificate: {{ teller_cert_path or 'Not set' }}
Private Key: {{ teller_key_path or 'Not set' }}
Environment: {{ teller_env }}
{% endblock %} {% block extra_js %} {% endblock %}