Configuration Guide
JWT payload configuration guide
The JWT includes the details of the requested payment:
- Amount
-
Currency
-
Creditor account
-
Debtor details (optional)
-
UI flow configurations (optional).
Follow this guide to configure your payment link.
Payment Line - JWT Payload Example
{
"encrypt": true,
"sub": "user-123",
"iss": "tpp/{TPP_ID}",
"srv": "fast/user",
"ttl": 1800,
"flow": {
"id": "default",
"userWasAuthenticated": false,
"context": "tx-20250113001",
"userIdentifier": {
"type": "ID",
"value": "216139683",
"editable": true
},
"redirects": {
"pisSuccess": "https://example.com/success",
"pisFailure": "https://example.com/failure",
"pisNotComplete": "https://example.com/not-complete",
"ttlExpired": "https://example.com/expired"
},
"payment": {
"remittanceInformationUnstructured": "Invoice payment",
"creditor": {
"name": "Company Ltd",
"account": "IL760125380000000693304",
"accountType": "iban"
},
"transfer": {
"amount": {
"value": "1.00",
"editable": true
},
"currency": {
"value": "ILS",
"editable": false
}
}
}
}
}Top level fields
| Field | Type | Required | Description |
|---|---|---|---|
encrypt | boolean | Yes | Must be true for JWTs sent to a /link endpoint. Place it at the top level, not inside flow. |
sub | string | Yes | A unique debtor identifier. 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. Use fast/user for Payment links. |
ttl | number | No | Link validity in seconds. Defaults to 1800; maximum is 120 days. |
flow | object | Yes | Payment flow configuration. |
Flow level fields
Configure userIdentifier
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 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)
*passport number format:
2 character country code - hyphen "-" - Passport number (1–9 alphanumeric characters)
For example:
IL-123456
Configure corporateIdentifier
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.
Configure payment
payment paymentobject defines the description, amount, creditor, and debtor details.- The description, creditor and transfer objects are mandatory.
- The debtor object is optional. It let's you pre-fill debtor account details if you have them through your app/website/internal flows.
{
"payment": {
"remittanceInformationUnstructured": "Invoice payment",
"creditor": {
"name": "Company Ltd",
"account": "IL760125380000000693304",
"accountType": "iban"
},
"transfer": {
"amount": {
"value": "1.00",
"editable": true
},
"currency": {
"value": "ILS",
"editable": false
}
}
}
}| Field | Type | Required | description | optional values |
|---|---|---|---|---|
payment.remittanceInformationUnstructured |
|
|
will appear in the debtor and creditor bank transactions. |
|
payment.creditor.name |
|
|
|
|
payment.creditor.account |
|
|
|
|
payment.creditor.accountType |
|
|
|
|
payment.transfer.amount.value |
|
|
X.XX format. Minimum 1.00. Send null if the debtor should enter the amount. | |
payment.transfer.amount.editable |
|
|
| |
payment.transfer.currency.value |
|
|
|
|
payment.transfer.currency.editable |
|
|
| |
payment.transfer.minimumAmount |
|
|
| |
debtor. bankCode |
|
|
|
|
debtor. aspspChannel |
|
|
-“business” -“corporate” |
|
payment. debtor. aspspChannelEditable |
|
|
| |
debtor. account |
|
|
|
Where xx=bank code, YYY=branch number, zzzzzz=account number (at list 6 digits) |
debtor. accountType |
|
|
|
|
debtor. editable |
|
|
|
|
Production payments can only be sent to creditor accounts that Feezback has whitelisted. If the account is not approved, the request may fail with a creditor-account whitelist error.
Configure flow.redirects
flow.redirects- Your urls to redirect the debtor 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
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"
}
}| Field | Type | Description |
|---|---|---|
| privateAccount | boolean | set default psuIdType to ‘private’. Accepted only if debtor.account is sent |
| businessAccount | boolean | set default psuIdType to ‘business’. Accepted only if debtor.account is sent |
| corporateAccount | boolean | set default psuIdType to ‘corporate’. Accepted only if debtor.account is sent |
| maskAccount | boolean | if true: debtorAccount number will be masked on the UI (if received in the JWT). |
| displaySuccessScreen | boolean | send “false” to skip Feezback’s success screen and redirect the user directly to the pisSuccess URL |
Updated 12 days ago
Did this page help you?