Getting Started

Welcome to Fiskil! This guide will help you get up and running with your Fiskil integration in no time. Whether you're building a banking or energy application, follow these steps to connect your users' accounts and start pulling data.

1. Create Your Fiskil Account

Start by creating an account through the Fiskil Console. Once registered, you can generate your API keys and access the tools needed to integrate Fiskil into your app or website.

2. Authenticate with Fiskil

Fiskil authenticates your API requests using API keys generated from the console. Here's how to exchange your API keys for an access token:

Generate API Keys

In the Fiskil Console, generate your client_id and client_secret.

Request an Access Token

Make a POST request to the /v1/token endpoint:

curl --location --request POST 'https://api.fiskil.com/v1/token' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data-raw '{
    "client_id": "your_client_id",
    "client_secret": "your_client_secret"
}'

Tip: Check out the [API Reference](/authentication) for code snippets in various programming languages.

Security Note: Store the returned `access_token` securely. All integrations must be handled on the server-side to protect sensitive data.

3. Create an End User

An End User represents a user of your app. You need to create this object to link accounts and manage consent.

Create an End User

Make a POST request to /v1/end-users with the user's details:

curl --request POST \
--url https://api.fiskil.com/v1/end-users \
--header 'Authorization: Bearer ${access_token}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "email": "user@example.com",
    "name": "User Name",
    "phone": "+1234567890"
}'

Store the end_user_id returned in the response for future API calls.

Tip: Retrieve an existing `end_user_id` using the GET `/end-users` endpoint if needed.

4. Set Up Your Consent Flow

Fiskil's APIs are use case agnostic, but it's crucial to ensure your users understand what data they're consenting to share.

Customize Consent in the Console

Navigate to the Customize UI page in the Fiskil Console.

Update:

  • Consent Period: Choose an appropriate duration
  • Data History: Limit history to what's necessary for faster sync
  • Use Cases: Clearly describe why you need access
  • Branding: Add your logo, company name, and adjust colors to match your brand

Note: To gain production access, you must only collect data essential for your product or service.

5. Create an Auth Session

An Auth Session facilitates linking a user's account through the consent flow you designed.

Create an Auth Session

Make a POST request to /v1/auth/session:

curl --request POST \
--url https://api.fiskil.com/v1/auth/session \
--header 'Authorization: Bearer ${access_token}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "cancel_uri": "https://yourapp.com/cancel",
    "end_user_id": "${end_user_id}",
    "redirect_uri": "https://yourapp.com/redirect"
}'

Handle the Response

{
  "auth_url": "https://auth.fiskil.com/?session_id=your_session_id",
  "expires_at": "2025-12-31T23:59:59Z",
  "session_id": "your_session_id"
}

Redirect users to the auth_url. This will launch the consent flow UI you configured.

6. Listen for Webhook Events

Once a user completes the consent flow, Fiskil emits webhook events to notify you when data is ready. Listening for these is the recommended integration pattern.

Key events to handle:

  • consent.received – triggered when the user completes the consent flow
  • banking.transactions.sync.completed – banking data is synced
  • energy.usage.sync.completed – energy data is synced

You can register your webhook endpoint in the Fiskil Console under Settings > Teams > Webhooks.

Fiskil signs each payload with an HMAC-SHA256 signature in the X-Fiskil-Signature header. Make sure to verify this signature before processing.

Learn more in the Webhooks Guide

7. Pull Data Using Fiskil APIs

Once the user has completed the consent flow, you can access their data using Fiskil's Banking or Energy APIs.

Banking APIs

EndpointDescription
Identity APIRetrieve identity information of connected bank accounts
Account APIGet account details of connected bank accounts
Balance APIAccess balance data of connected bank accounts
Transaction APIFetch transaction history of connected bank accounts
Payee APIGet payee details linked to connected bank accounts
Direct Debit APIView direct debits from connected bank accounts
Scheduled Payment APIList scheduled payments from connected bank accounts

Energy APIs

EndpointDescription
Identity APIRetrieve identity information of connected energy accounts
Account APIGet account details of connected energy accounts
Balance APIAccess balance data of connected energy accounts
Concession APIView concessions applied to connected energy accounts
Billing APIRetrieve billing information from connected energy accounts
Invoice APIGet invoice data for connected energy accounts
Usage APIAccess usage and interval data for connected energy accounts
Servicepoint APIRetrieve site information for connected energy accounts
DER APIObtain Distributed Energy Resources (DER) data
Scheduled Payment APIList scheduled payments from connected energy accounts

Note: Most endpoints support retries and idempotency. We recommend listening to webhook events before attempting to fetch data to ensure it's available.

8. Test Your Integration

Before moving to production, validate your integration end-to-end:

  • Create a test end user
  • Run through the consent flow
  • Confirm webhook delivery
  • Fetch data using the relevant API

Once you're confident in your flow, review our Launch Checklist to prepare for production.

Need Help?

Not a developer? No worries! Reach out to Fiskil's certified experts or explore our Open Source examples.

🎉 That's it! You're now set up with Fiskil. Let us know what you're building—we'd love to help you out or even feature your product on our blog.

Was this page helpful?