Skip to content

Overview

This API is intended for registered partners in agreement with Fondo.

The API is subject to change.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.fondo.se/_mock/openapi/api_3.0.3
Production
https://api.fondo.se
Sandbox
https://api.sandbox.fondo.se

Authorization

Obtain and manage access tokens via OAuth 2.0 Client Credentials. Send grant_type=client_credentials with your client_id and client_secret. Use the returned access_token in Authorization: Bearer <token>. Tokens are short-lived—reuse during validity and renew on expiry.

Operations

Accounts

Accounts hold investor positions, balances, and cash movements under a client. Endpoints let you list accounts, fetch details, and close accounts. Responses include status, owner info, currency, linked bank accounts, positions, and timestamps.

Operations

Agreements

Retrieve account agreements and generate PDF documents for account-related contracts.

Operations
Operations

Clients

A client is your legal entity (B2B) or grouping for end-investor accounts. Use these endpoints to list, create, read, and update clients, manage bank accounts and service types, and fetch client-specific resources (instruments, custodians).

Operations

Custodians

Fetch custodians linked to a client—useful for transfer instructions and operational routing. Returns identifiers and names for display and validation.

Operations

Journeys (Hosted Flows)

Journeys are secure, hosted web flows for customer interactions: account opening (e-sign), KYC/KYB questionnaires, fund transfers, and allocation plan setup. Create a Journey via API, redirect customers to the time-limited URL, and poll/callback for results.

Operations

Request

Returns the current state, configuration, and outcome of a web journey identified by journey_id under client_id (e.g., createAccount). Includes journey URL, expiry, callback/redirect URLs, context/scope, and any produced results (such as created account, bank account, transfer instructions, allocation plan). Use it to monitor progress and fetch results after end-customer completion.

Security
oAuth
Path
client_idstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-onlyrequired

The ID of requested client.

Example: 49ad7378-121c-4a53-9894-dfd14a7b4877
journey_idstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-onlyrequired

The ID of requested journey.

Example: 49ad7378-121c-4a53-9894-dfd14a7b4877
curl -i -X GET \
  https://docs.fondo.se/_mock/openapi/api_3.0.3/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/journey/49ad7378-121c-4a53-9894-dfd14a7b4877 \
  -H 'Authorization: Bearer <YOUR_Token_HERE>'

Responses

journey

Bodyapplication/json
statusnew (string) or pending (string) or canceled (string) or error (string) or complete (string) or expired (string)read-only

The partner/client has to follow the progress

One of:

New, journey not yet activated

string(new)read-only
Value"new"
idstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-only

The ID of web journey.

Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
clientIdstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-only

The ID of requested client.

Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
urlstringread-only

journey url

Example: "https://webbo.fondo.se/dT7KlfoMrjOspMBvyAq2bvD8cSSAVZg50bAh8G8U6z4nNPRHAy"
expiryDatestring(date-time)read-only

Date when journey token is considered stale

Example: "2018-12-13T23:59:00.001Z"
journeycreateAccount (object) or addBankAccount (object) or kycRenewal (object) or updateAllocationPlan (object)required
One of:
journey.​journeyTypestring(createAccount)required
Value"createAccount"
journey.​accountNamestring<= 500 characters

If not provided, the end-user will be asked to select accountName. If provided, the accountName will not be visible to the customer in this journey.

journey.​emailstring or null(email)

end user email address

Example: "enduser@endUserDomain.com"
journey.​accountTypesArray of objectsrequired

Allowed account types

Items Enum"isk""depot""insurance"
journey.​accountServiceTypestring(accountServiceType)required

Account service type

Enum"portfolioManagement""investmentAdvise""executionOnly"
journey.​allocationPlanobject or null

Setup an allocation plan for the account. Deposits will allocate based on this plan. If null the view will not be shown

journey.​kycsArray of objects or null

Valid Know Your Customer answers used to prefill the options in the journey.

journey.​transferobject or null

If defined, the view with options to instruct Fondo to initate transfers from other custodians will be shown. If null the view will not be shown.

sortedIdstring(ULID)^[0-9a-zA-Z]{26}$read-only

ULID (Universally Unique Lexicographically Sortable Identifier)

Example: "01ARZ3NDEKTSV4RRFFQ69G5FAV"
createdDatestring(date-time)read-only

Date when acocunt was created

Example: "2018-12-13T23:59:00.001Z"
modifiedDatestring(date-time)read-only

Date when last modified

Example: "2018-12-13T23:59:00.001Z"
deletedbooleanread-only

True if the journey is deleted

deletedDatestring or null(date-time)read-only

Date when last modified

Example: "2018-12-13T23:59:00.001Z"
callbackUrlstringrequired

Url for partner callback

Example: "https://api.habibisfonder.se/v1/fondo/callback"
redirectUrlstring or null

Redirect URL when leaving the Fondo Journey (BankID etc)

Example: "customerApp:///"
errorCodestring or nullread-only

Any errors occurring during journey

contextstring or nullread-only

Where end-user exited the journey. On error on cancel, if applicable.

Example: "createaccountsign"
scopestring or null<= 500 charactersrequired

BASE64 encoded partner specific data attached to the journey, such as encrypted data containing session information. It will be passed back to callback.

result(kycRenewal (object or null)) or (updateAllocationPlan (object or null)) or (createAccount result (object or null))

Result of journey

One of:

Result of journey

Response
application/json
{ "status": "new", "id": "string", "clientId": "string", "url": "https://webbo.fondo.se/dT7KlfoMrjOspMBvyAq2bvD8cSSAVZg50bAh8G8U6z4nNPRHAy", "expiryDate": "2018-12-13T23:59:00.001Z", "journey": { "journeyType": "createAccount", "accountName": "string", "email": "enduser@endUserDomain.com", "accountTypes": [], "accountServiceType": "portfolioManagement", "allocationPlan": {}, "kycs": [], "transfer": {} }, "sortedId": "string", "createdDate": "2018-12-13T23:59:00.001Z", "modifiedDate": "2018-12-13T23:59:00.001Z", "deleted": true, "deletedDate": "2018-12-13T23:59:00.001Z", "callbackUrl": "https://api.habibisfonder.se/v1/fondo/callback", "redirectUrl": "customerApp:///", "errorCode": "string", "context": "createaccountsign", "scope": "string", "result": { "journeyType": "kycRenewal" } }

Callbacks

Journey callback
post

Request

Initiates a new web journey (e.g., createAccount) for the specified client_id. Provide journey configuration (account types, service type, optional allocation plan, KYC questions, transfer instructions) plus callback/redirect URLs. The response returns a journey id, a launchable url, status, and metadata you can track until completion.

Security
oAuth
Path
client_idstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-onlyrequired

The ID of requested client.

Example: 49ad7378-121c-4a53-9894-dfd14a7b4877
Bodyapplication/json

Create journey request

journeycreateAccount (object) or addBankAccount (object) or kycRenewal (object) or updateAllocationPlan (object)required
One of:
journey.​journeyTypestring(createAccount)required
Value"createAccount"
journey.​accountTypesArray of objectsrequired

Allowed account types

Items Enum"isk""depot""insurance"
journey.​accountNamestring<= 500 characters

If not provided, the end-user will be asked to select accountName. If provided, the accountName will not be visible to the customer in this journey.

journey.​emailstring or null(email)

end-user email address

Example: "enduser@endUserDomain.com"
journey.​accountServiceTypestring(accountServiceType)required

Account service type

Enum"portfolioManagement""investmentAdvise""executionOnly"
journey.​allocationPlanobject or null

Setup an allocation plan for the account. Deposits will allocate based on this plan. If null the view will not be shown

journey.​kycsArray of objects or null

Valid Know Your Customer answers used to prefill the options in the journey.

journey.​transferobject or null

If defined, the view with options to instruct Fondo to initate transfers from other custodians will be shown. If null the view will not be shown.

callbackUrlstringrequired

Url for partner callback

Example: "https://api.habibisfonder.se/v1/fondo/callback"
redirectUrlstring or null

Redirect URL when leaving the Fondo Journey (BankID etc)

Example: "customerApp:///"
scopestring or null<= 500 charactersrequired

BASE64 encoded partner specific data attached to the journey, such as encrypted data containing session information. It will be passed back to callback.

curl -i -X POST \
  https://docs.fondo.se/_mock/openapi/api_3.0.3/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/journey \
  -H 'Authorization: Bearer <YOUR_Token_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "journey": {
      "journeyType": "createAccount",
      "accountTypes": [
        "isk"
      ],
      "accountName": "string",
      "email": "enduser@endUserDomain.com",
      "accountServiceType": "portfolioManagement",
      "allocationPlan": {
        "paymentAccount": {
          "iban": "SE7280000810340009783242"
        },
        "instruments": [
          {
            "instrument": "SE0000810798SEK",
            "allocation": 100
          }
        ]
      },
      "kycs": [
        {
          "qid": "money_origin",
          "answer": "lön/pension"
        }
      ],
      "transfer": {
        "forced": true,
        "instructions": [
          {
            "type": "cash",
            "custodian": "string",
            "account": "1223456789"
          }
        ]
      }
    },
    "callbackUrl": "https://api.habibisfonder.se/v1/fondo/callback",
    "redirectUrl": "customerApp:///",
    "scope": "string"
  }'

Responses

journey

Bodyapplication/json
statusnew (string) or pending (string) or canceled (string) or error (string) or complete (string) or expired (string)read-only

The partner/client has to follow the progress

One of:

New, journey not yet activated

string(new)read-only
Value"new"
idstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-only

The ID of web journey.

Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
clientIdstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...read-only

The ID of requested client.

Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
urlstringread-only

journey url

Example: "https://webbo.fondo.se/dT7KlfoMrjOspMBvyAq2bvD8cSSAVZg50bAh8G8U6z4nNPRHAy"
expiryDatestring(date-time)read-only

Date when journey token is considered stale

Example: "2018-12-13T23:59:00.001Z"
journeycreateAccount (object) or addBankAccount (object) or kycRenewal (object) or updateAllocationPlan (object)required
One of:
journey.​journeyTypestring(createAccount)required
Value"createAccount"
journey.​accountNamestring<= 500 characters

If not provided, the end-user will be asked to select accountName. If provided, the accountName will not be visible to the customer in this journey.

journey.​emailstring or null(email)

end user email address

Example: "enduser@endUserDomain.com"
journey.​accountTypesArray of objectsrequired

Allowed account types

Items Enum"isk""depot""insurance"
journey.​accountServiceTypestring(accountServiceType)required

Account service type

Enum"portfolioManagement""investmentAdvise""executionOnly"
journey.​allocationPlanobject or null

Setup an allocation plan for the account. Deposits will allocate based on this plan. If null the view will not be shown

journey.​kycsArray of objects or null

Valid Know Your Customer answers used to prefill the options in the journey.

journey.​transferobject or null

If defined, the view with options to instruct Fondo to initate transfers from other custodians will be shown. If null the view will not be shown.

sortedIdstring(ULID)^[0-9a-zA-Z]{26}$read-only

ULID (Universally Unique Lexicographically Sortable Identifier)

Example: "01ARZ3NDEKTSV4RRFFQ69G5FAV"
createdDatestring(date-time)read-only

Date when acocunt was created

Example: "2018-12-13T23:59:00.001Z"
modifiedDatestring(date-time)read-only

Date when last modified

Example: "2018-12-13T23:59:00.001Z"
deletedbooleanread-only

True if the journey is deleted

deletedDatestring or null(date-time)read-only

Date when last modified

Example: "2018-12-13T23:59:00.001Z"
callbackUrlstringrequired

Url for partner callback

Example: "https://api.habibisfonder.se/v1/fondo/callback"
redirectUrlstring or null

Redirect URL when leaving the Fondo Journey (BankID etc)

Example: "customerApp:///"
errorCodestring or nullread-only

Any errors occurring during journey

contextstring or nullread-only

Where end-user exited the journey. On error on cancel, if applicable.

Example: "createaccountsign"
scopestring or null<= 500 charactersrequired

BASE64 encoded partner specific data attached to the journey, such as encrypted data containing session information. It will be passed back to callback.

result(kycRenewal (object or null)) or (updateAllocationPlan (object or null)) or (createAccount result (object or null))

Result of journey

One of:

Result of journey

Response
application/json
{ "status": "new", "id": "string", "clientId": "string", "url": "https://webbo.fondo.se/dT7KlfoMrjOspMBvyAq2bvD8cSSAVZg50bAh8G8U6z4nNPRHAy", "expiryDate": "2018-12-13T23:59:00.001Z", "journey": { "journeyType": "createAccount", "accountName": "string", "email": "enduser@endUserDomain.com", "accountTypes": [], "accountServiceType": "portfolioManagement", "allocationPlan": {}, "kycs": [], "transfer": {} }, "sortedId": "string", "createdDate": "2018-12-13T23:59:00.001Z", "modifiedDate": "2018-12-13T23:59:00.001Z", "deleted": true, "deletedDate": "2018-12-13T23:59:00.001Z", "callbackUrl": "https://api.habibisfonder.se/v1/fondo/callback", "redirectUrl": "customerApp:///", "errorCode": "string", "context": "createaccountsign", "scope": "string", "result": { "journeyType": "kycRenewal" } }

Callbacks

Journey callback
post

Instruments

The instrument universe consists of mutual funds available for a given client or globally. Retrieve instrument metadata: identifiers (e.g., ISIN), currency, latest price, KIID links, tradability flags, unit decimals, minimums, and cost/fee breakdowns.

Operations

Payment Instructions

Payment instructions (e.g., autogiro) batch one or more payments to accounts. Create instructions, then track the payments under each instruction (amounts, status, and references).

Operations

Orders

Fund orders (subscription/redemption) drive the trading lifecycle. Create, read, list, and cancel orders; track status from receivedsentconfirmedsettled. Orders reference accounts and instruments, and map to cash/fund transactions on settlement.

Operations

Transactions

Transactions record movements of money and units.

  • Cash transactions (CT): deposits, withdrawals, cash legs of fund orders (with settlement dates).
  • Fund transactions (FT): unit movements from subscriptions/redemptions (trade & settlement dates). Use these endpoints to reconcile ledgers and statements.
Operations

Subscriptions (WebSocket & Webhooks)

Receive real-time updates from Fondo without polling.

  • WebSocket: open a persistent stream for .create, .update, .delete, and heartbeat events.
  • Webhooks: register a callback URL to get signed POSTs with current/previous payloads. Include replay/retry handling in your consumers.
Operations
Operations