Consent link configuration guide

JWT payload configuration guide

🔐

The JWT payload must be signed using your Private Key.

The JWT includes the details of the requested consent. Follow this guide to configure your link.

Consent JWT fields

Field
Type
Required
Notes
sub
string
Yes
A unique identifier of the user giving the consent. Do not send PII. Apply hashing for PII values.
iss
string
Yes
Your organisation ID (tpp_id) provided by Feezback in the format: tpp/{TPP_ID}.
srv
string
Yes
Service selector. useais/user for AIS, view_ais/user for VIEW.
ttl
number
No
Link validity in seconds. Defaults to 1800; maximum is 86400 (24 hours).
flow
object
Yes
Consent flow configuration.

Flow level fields

FieldTypeRequiredDescription
flow.
id
string
Yes
Flow identifier. Use default unless Feezback configured a different flow for you.
flow.
userWasAuthenticated
boolean
Conditional according to selected service:
Set true if you've already authenticated the user's identity yourself. If not set/false:
Only for the VIEW serviceflow.userInfo.phoneNumber becomes required for 2FA verification.
flow.
context
string
No
Your unique identifier echoed back on webhooks so you can refer to it to the request. Max 50 characters.
flow.
userIdentifier
object
Conditional
debtor id or passport number. mandatory if userWasAuthenticated=true
flow.
corporateIdentifier
object
optional
Business number (ח.פ).
flow.
dataBaskets
array
Mandatory for AIS. Ignored for VIEW.
Data categories the user is asked to approve: details, transactions and balances.
flow.
mandatoryDataBaskets
array
Mandatory for AIS. Ignored for VIEW.
Data categories selected by default with no option for the user to uncheck. VIEW will require to approve all categories by default.
flow.
accountTypes
array
Mandatory for AIS. Ignored for VIEW.
Account types the user is asked to approve: CACC, CARD, LOAN, SVGS, SCTS. VIEW will require to approve all types by default.
flow.
mandatoryAccountTypes
array
Mandatory for AIS. Ignored for VIEW.
Account types selected by default with no option for the user to uncheck. VIEW will require to approve all categories by default.
flow.
timePeriods
array
Yes
Suggested time periods for the consent duration.
flow.
defaultTimePeriod
array
Yes
Default duration selected.
flow.
redirects.
success
string
Yes
Redirect URL after successful consent.
flow.
redirects.
failure
string
Yes
Redirect URL after failed consent.
flow.
redirects.
ttlExpired
string
Yes
Redirect URL when the link expires.

JSON payload example

{
  "encrypt": true,
  "iss": "tpp/{organizationId}",
  "srv": "ais/user",
  "ttl": 1800,
  "sub": "USERIDENTIFIER",
  "flow": {
    "id": "default",
    "mandatoryDataBaskets": [
      "ACCOUNTS",
      "BALANCES",
      "TRANSACTIONS"
    ],
    "accountTypes": [
      "CACC",
      "CARD",
      "LOAN",
      "SVGS",
      "SCTS"
    ],
    "mandatoryAccountTypes": [
      "CACC",
      "CARD",
      "LOAN",
      "SVGS",
      "SCTS"
    ],
    "flags": {
      "hideDataBaskets": true
    },
    "timePeriods": [
      "TWELVE_MONTHS"
    ],
    "defaultTimePeriod": "TWELVE_MONTHS",
    "userWasAuthenticated": true,
    "context": "Fusion context",
    "userIdentifier": {
      "type": "ID",
      "value": "{ID-Value}",
      "editable": false
    },
    "redirects": {
      "success": "http://localhost:8000/success",
      "failure": "http://localhost:8000/failure",
      "ttlExpired": "http://localhost:8000/ttlexpired"
    }
  }
}

Configure userIdentifier

  • The userIdentifier object allows you to set the debtor's identification.
  • Use it in cases you have the debtor's government ID or passport number (for example, after in-app/website authentication).
  • Consider wether you want it editable or locked. Enable editing when you can receive consents from a different ID. Disable editing when you want a consent from a specific ID holder.
  • All fields within the object are mandatory if the object is sent
  • Defining userIdentifier is optional. If not sent with the JWT, the debtor will be prompted to fill out their ID (you will receive it with the webhook at the end of the process)
FieldTypeDescriptionOptional values
flow.userIdentifier.type
string
Type of identifier used for the user.
  • ID
  • PASSPORT
flow.userIdentifier.value
string
Actual identifier value
a valid Israeli ID / international Passport number*
flow.userIdentifier.editable
boolean
if True, the user may edit their ID. If False, ID is not editable.

*passport number format:
2 character country code - hyphen "-" - Passport number (1–9 alphanumeric characters)
For example:
IL-123456

Configure corporateIdentifier

  • The corporateIdentifier object allows you to set the account holder's corporate identification (in case the account holder is a corporate and you have their business number (ח.פ.)
  • If you don't have it, no worries: the debtor will add it on Feezback screens.
FieldTypeDescriptionOptional values
flow.corporateIdentifier.value
string
Corporate ID number (ח.פ). Only for corporate accounts.
Corporate ID number (ח.פ).
flow.corporateIdentifier.editable
boolean
Indicates whether the user may edit their corporate ID.
True/False
flow.corporateIdentifier.disabled
boolean
Send True to disable consents from corporate accounts.

Configure the consent data

  • The consent defines two levels of required data:

    • Account types for which the consent is relevant:
      • CACC: Cash accounts.
      • CARD: Card accounts.
      • SVGS : Savings accounts.
      • LOAN: Loan accounts.
      • SCTS : Securities accounts.
    • Data baskets required: the details that will be received for each account connected:
      • ACCOUNTS
      • TRANSACTIONS
      • BALANCES
  • If you use the VIEW service, all account types and data baskets will be required and selected by default with no editing options.

  • For the AIS service, you need to configure:

    • Which account types and data baskets will be requested from the user
    • What will be the default selection
    • If the default is editable
FieldTypeRequiredDescriptionoptional values
flow.
dataBaskets
array
Mandatory for AIS. Ignored for VIEW.
Data categories the user is asked to approve: details, transactions and balances.
ACCOUNTS
TRANSACTIONS
BALANCES
flow.
mandatoryDataBaskets
array
Mandatory for AIS. Ignored for VIEW.
Data categories selected by default with no option for the user to uncheck. VIEW will require to approve all categories by default.
ACCOUNTS,
TRANSACTIONS,
BALANCES
flow.
accountTypes
array
Mandatory for AIS. Ignored for VIEW.
Account types the user is asked to approve. VIEW will require to approve all types by default.
CACC, CARD, LOAN, SVGS, SCTS.
flow.
mandatoryAccountTypes
array
Mandatory for AIS. Ignored for VIEW.
Account types selected by default with no option for the user to uncheck. VIEW will require to approve all categories by default.
CACC, CARD, LOAN, SVGS, SCTS.

Configure the consent duration

  • The consent duration defines the time period the consent will be valid. After the defined time period has passed, the consent will expire and new data fetching will not be available.
  • The shortest time period is one day: a consent the will expire within 24 hours.
  • The maximum period is 3 years.
  • After the consent period is over, the user will need to grant a new consent.
FieldTypeRequiredDescriptionOptional values
flow.
timePeriods
array
Yes
Up to 4 Suggested time periods for the consent duration.
ONE_DAY
ONE_MONTH
TWO_MONTHS
THREE_MONTHS
SIX_MONTHS
TWELVE_MONTHS
ONE_YEAR_SIX_MONTHS
TWO_YEARS
THREE_YEARS
flow.
defaultTimePeriod
array
Yes
Default duration selected.
ONE_DAY
ONE_MONTH
TWO_MONTHS
THREE_MONTHS
SIX_MONTHS
TWELVE_MONTHS
ONE_YEAR_SIX_MONTHS
TWO_YEARS
THREE_YEARS

Configure flow.redirects

  • Your urls to redirect the user to at the end of the process (optional)
  • If not set, the flow will end at Feezback's Success/Rejection screen.
  • URLs may not exceed 128 characters

FieldTypeDescription
flow.redirects.success
string (URL)
URL to redirect the user after a successful transfer authorization.
flow.redirects.failure
string (URL)
URL to redirect the user if transfer authorization fails.
flow.redirects.notComplete
string (URL)
URL to redirect the user if transfer authorization awaits further approval from another account holder.
flow.redirects.ttlExpired
string (URL)
URL to redirect the user if transfer link expired.

Flags

If you use flags, place them at the top level of the JWT, outside flow.
*A common integration mistake is nesting flags inside flow.

{
  "encrypt": true,
  "sub": "user-123",
  "iss": "tpp/{TPP_ID}",
  "srv": "fast/user",
  "flags": {
    "maskAccount": true
  },
  "flow": {
    "id": "default"
  }
}
FieldTypeDescription
displaySuccessScreenbooleanset “false” to skip Feezback’s success screen and redirect the user directly to the pisSuccess URL
hideDataBasketsbooleanset "true" to hide the data baskets selection module from the page.

Did this page help you?