feat: Tink open banking demo — 6-step API walkthrough

Demonstrates the full Tink integration flow for open banking:
  Step 1 — Client credentials auth (app token)
  Step 2 — Create Tink user with external_user_id
  Step 3 — Connect bank via Tink Link OAuth redirect
  Step 4 — List accounts (v2 endpoint)
  Step 5 — List transactions (v2 endpoint, cursor pagination)
  Step 6 — Webhooks (register endpoint, receive events)

Built with Python / FastAPI + Jinja2 templates.
Each step shows live JSON responses, cURL examples and API version badges.
Includes server-side token store (prevents session cookie overflow),
asyncio lock on OAuth callback, and demo mode with realistic mock data.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Henrik Jess Nielsen
2026-05-23 02:08:27 +02:00
commit ab591be464
23 changed files with 2477 additions and 0 deletions

41
moneycapp-tink-demo.nomad Normal file
View File

@@ -0,0 +1,41 @@
job "moneycapp-tink-demo" {
datacenters = ["dc1"]
type = "service"
group "demo" {
count = 1
network {
port "http" { to = 8000 }
}
service {
name = "moneycapp-tink-demo"
port = "http"
tags = ["traefik.enable=true",
"traefik.http.routers.tink-demo.rule=Host(`tink-demo.i80.dk`)",
"traefik.http.routers.tink-demo.tls=true",
"traefik.http.routers.tink-demo.tls.certresolver=le"]
check {
type = "http"
path = "/"
interval = "30s"
timeout = "5s"
}
}
task "app" {
driver = "docker"
config {
image = "registry.i80.dk/gitea/moneycapp-tink-demo:latest"
ports = ["http"]
}
resources {
cpu = 256
memory = 256
}
}
}
}