Skip to content
Last updated

End-customer onboarding (identity verification, KYC, account signing) is handled through journeys — secure, hosted web flows. You create a journey via the API and redirect the customer to the returned URL. Read more about journeys in Web Flows for End-Customer Actions.

Natural person (private individual)

Create a createAccount journey. Redirect the customer to the returned url — Fondo handles BankID verification, PEP/sanctions screening, and account agreement signing.

curl -i -X POST \
  https://api.sandbox.fondo.se/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/journey \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "string",
    "journey": {
      "payment": "49ad7378-121c-4a53-9894-dfd14a7b4877",
      "journeyType": "signWithdrawal"
    },
    "callbackUrl": "https://api.habibisfonder.se/v1/fondo/callback",
    "redirectUrl": "customerApp:///",
    "completionRedirectUrl": "https://partner.example/onboarding-done",
    "scope": "string"
  }'

A similar journey, createLegalEntityAccount journey type is used for companies. Fondo automatically retrieves verified company data and authorized signatory combinations based on the organisation number provided during the journey.

The resulting account will have an owner with ownerType: "legal_entity" including name, crn, and additional entity details.

Tracking journey progress

Poll the journey or listen for callbacks. Journey status progresses: newpendingcomplete (or canceled / error / expired).

curl -i -X GET \
  https://api.sandbox.fondo.se/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/journey/49ad7378-121c-4a53-9894-dfd14a7b4877 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

On completion, the result object contains the created account ID, account type, and service type.

Journey schema

typestring

Type of journey. Mirrors the journey.journeyType

statusnew (string) or pending (string) or canceled (string) or expired (string) or error (string) or complete (string)read-only
  • new — Journey created but not yet opened by the end customer
  • pending — End customer has opened the journey and is in progress
  • canceled — End customer aborted the journey
  • error — An error occurred during the journey
  • complete — Journey completed successfully
  • expired — Journey URL expired before completion
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"
journeysignWithdrawal (object) or createLegalEntityAccount (object) or signSubmission (object) or addBankAccount (object) or kycRenewal (object) or updateAllocationPlan (object) or updateSavingsPlan (object) or createAccount (object)required
One of:

Let end user sign an insurance withdrawal request.

journey.​paymentstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...required
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
journey.​journeyTypestring(signWithdrawal)required
Value"signWithdrawal"
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"
submissionUUID (string) or null

optional submission id. May be created in legal entity journeys. May be fetched on separate GET /submission/:id route

One of:

optional submission id. May be created in legal entity journeys. May be fetched on separate GET /submission/:id route

string(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...
callbackUrlstringrequired

URL that receives a POST request when the journey status changes to canceled, error, or complete. The payload includes the journey id, status, and scope. Must use https in production.

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

Passed to BankID as the redirect target after mobile signing completes. Set this to a deep link (e.g. customerApp:///) so BankID returns the user to your app instead of the webview. Not needed for web-only integrations.

Example: "customerApp:///"
completionRedirectUrlstring or null

URL the browser is redirected to once the journey completes successfully. Can be an http(s) URL or a custom-scheme deep link (e.g. myapp://done) for native-app handoff.

Example: "https://partner.example/onboarding-done"
errorCodestring or nullread-only

Any errors occurring during journey

contextstring or null

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

Example: "createaccountsign"
scopestring or null<= 768 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(createAccount result (object or null)) or (updateAllocationPlan result (object or null)) or (updateSavingsPlan result (object or null)) or (signSubmission result (object or null)) or (createLegalEntityAccount result (object or null)) or (kycRenewal result (object or null)) or (addBankAccount result (object or null))

Result of journey

One of:

Result of journey

Next: Deposits