Configuration Guide

JWT payload configuration guide

Example payload:

{
  "iss": "tpp/987654",
  "srv": "mandate/user",
  "sub": "user-00112233",
  "flow": {
    "userWasAuthenticated": true,
    "context": "tx-20250113001",
    "userIdentifier": {
      "type": "ID",
      "value": "200200202",
      "editable": true
    },
    "mandate": {
      "creditor": {
        "name": "Electric Company Ltd",
        "organizationCode": "24562"
      },
      "debtor": {
        "account": "IL710110950000102188000",
        "accountType": "iban",
        "editable": true
      },
      "redirects": {
        "success": "https://merchant.com/success",
        "failure": "https://merchant.com/failure",
        "notComplete": "https://merchant.com/notComplete",
        "ttlExpired": "https://merchant.com/session-expired"
      }
    }
  }
}

JWT fields

FieldTypeRequiredDescription
issstringYesIssuer value in the format tpp/{TPP_ID}.
srvstringYesService selector. Use mandate/user for mandate authorization flows.
substringYesUser identifier for the mandate flow.
flowobjectYesMandate flow configuration.

Flow fields

Field
Type
Required
Description
flow.userWasAuthenticated
boolean
Yes
Indicates whether the payer was already authenticated before entering the flow.
flow.context
string
Recommended
Context identifier returnes in webhook for matching. Up to 50 characters.
flow.userIdentifier
object
No
Debtor ID.
flow.corporateIdentifier
object
No
Corporate ID number (ח״פ). To be used for corporate accounts.
flow.mandate
object
Yes
Mandate configuration.

Configure userIdentifier

  • The userIdentifier object allows you to set the debtor's identification.
  • Use it in cases you have the debtor's government ID (for example, after in-app/website authentication).
  • Consider wether you want it editable or locked. Enable editing when you can receive payments from a different ID. Disable editing when you want The transfer 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
flow.userIdentifier.value
string
Actual identifier value
a valid Israeli ID
flow.userIdentifier.editable
boolean
if True, the user may edit their ID. If False, ID is not editable.

Configure corporateIdentifier

  • The corporateIdentifier object allows you to set the debtor's corporate identification (in case your debtor 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 payments from corporate accounts.

Configure mandate fields

FieldTypeRequiredDescription
flow.
mandate.
creditor.
name
string
Yes
Creditor organization name.
flow.
mandate.
creditor.
organizationCode
string
Yes
Masav creditor organization code.
flow.
mandate.
debtor.
account
string
No
Debtor account. If not sent, the user will be requested to enter the details on Feezback's UI.
flow.
mandate.
debtor.
accountType
string
No
Debtor account type: private / business / corporate.
If not sent, the user will be requested to enter the details on Feezback's UI.
flow.
mandate.
debtor.
editable
boolean
No
Whether the payer can edit the debtor account.
flow.
mandate.
redirects.
success
string
No
Redirect URL for a successful mandate flow.
flow.
mandate.
redirects.
failure
string
No
Redirect URL for a rejected mandate flow.
flow.
mandate.
redirects.
notComplete
string
No
Redirect URL when additional approval is required by other account assignees.
flow.
mandate.
redirects.
ttlExpired
string
No
Redirect URL when the link expires.

Configure a public link

What is a public link?

A Feezback link that can be used universally to get payments from anyone, without predefined payment and debtor details.

  • No prefilled data: all fields will be entered by the debtor.
  • Reusable: enables multiple usage by different debtors.
  • Non expiring: the link will not have an expiration time and will be available indefinitely.
  • Easy display: short link or QR code.

When to use it?

Generate a public link when you you don't need to assign the link to a specific flow on your side.
Public links has predefined settings that are not configured per payment. It is a one size fits all solution.

How to generate a public link?

  1. Generate a Feezback Mandate Link without userIdentifier and without debtor account.
  2. Add the "publicLink" object to the payment link request "flow" object.
  3. Add custom fields if you want to collect additional details from the debtor (you will get these values back in the status update webhooks.
{
  "publicLink": {
    "customFields": [
      {"name": "agentIdentifier"},
      {"name": "phoneNumber"},
      {"name": "debtorName"}
    ]
  },


Did this page help you?