@finodigital/finoos-sdk
v1.1.2
Published
TypeScript client for the finoOS2 REST API
Maintainers
Readme
@finodigital/finoos-sdk
TypeScript client for the finoOS2 REST API. Zero dependencies — uses native fetch, works in Node 22+, Deno, and edge runtimes.
Install
npm install @finodigital/finoos-sdkUsage
import { FinoClient, getAccounts, getAllTransactions, getContracts } from "@finodigital/finoos-sdk";
const client = new FinoClient({
baseUrl: "https://os.fino.cloud/api",
clientId: "your-client-id",
clientSecret: "your-client-secret",
});
await client.authenticate();
const accounts = await getAccounts(client, userId);
const transactions = await getAllTransactions(client, userId, { from: "2025-01-01" });
const contracts = await getContracts(client, userId);Features
- JWT authentication with auto-refresh (30s before expiry)
- Retry with full jitter backoff (max 3 retries for 429/5xx/network errors)
- Honours
Retry-Afterheader on 429 responses - Typed error classes:
FinoApiError,FinoAuthError,FinoRateLimitError,FinoNotFoundError,FinoValidationError,FinoNetworkError - Full TypeScript types for all finoOS2 API resources
- ESM-only, zero dependencies
API
Client
new FinoClient(config)— create a client with{ baseUrl, clientId, clientSecret }client.authenticate()— explicit auth (called automatically on first request)client.request<T>(method, path, body?)— typed HTTP request
Endpoints
Users: createUser, getUser, setUserScopes, triggerAnalysis, deleteUser
Banking: createConnectSession, createManagementSession, getAccounts, getTransactions, getAllTransactions, streamTransactions, triggerSync, getBankLogins, deleteBankLogin, disconnectAllBanking
Contracts: getContracts
License
MIT
