Public API

Treasury automation for Swedish corporate groups

Bank-native cash visibility, payments, reconciliation, and forecasting. OAuth2 with fine-grained scopes.

Production
https://api.finvis.se/public
Sandbox
https://sandbox.finvis.se/public

Quick Start

Get an access token and make your first API call.

1
Create an API client
In the Finvis console, create a PublicAPIClient with the scopes you need.
2
Request an access token
Use client credentials grant to get a Bearer token.
3
Call the API
Include the token in the Authorization header.
# Get access token
curl -X POST https://api.finvis.se/public/auth/token/ \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_SECRET" \
  -d "scope=read:ledger"

# Use the token
curl https://api.finvis.se/public/accounts/ \
  -H "Authorization: Bearer YOUR_TOKEN"

Authentication

OAuth2 client credentials flow. Each token is scoped to a tenant.

Token Endpoint
POST /public/auth/token/

Available Scopes

read:ledger
Accounts, balances, transactions
read:reporting
Cashflow and positions
read:payments
Payment batches and statuses
write:payments
Create and submit payments
read:reconciliation
Reconciliation matches
admin:public_api
Manage webhooks

Idempotency

All write endpoints require an Idempotency-Key header. Same key returns cached response.

POST /public/payments/batches/
Idempotency-Key: uuid-here

Webhooks

Receive signed notifications for payments and reconciliation events.

X-Finvis-Signature HMAC signature
Events: transaction.created, payment.status.updated

Rate Limits

Per-client limits with standard headers.

X-RateLimit-Limit
X-RateLimit-Remaining
X-RateLimit-Reset
Ledger
  • GET /accounts
  • GET /accounts/{id}
  • GET /transactions
Payments
  • GET /payments/batches
  • POST /payments/batches
  • POST /payments/batches/{id}/submit
Reconciliation
  • GET /reconciliation/matches
  • POST /reconciliation/matches/{id}/confirm
Reporting
  • GET /reporting/cashflow
  • GET /reporting/positions
Approvals
  • GET /approvals/pending
  • POST /approvals/{id}/approve
Organization
  • GET /companies
  • GET /koncerner