Error Handling
Troubleshoot Feezback JWT, payload, account whitelist, ASPSP, redirect, and webhook errors.
Diagnose Feezback integration errors by checking JWT validity, request payloads, account whitelisting, bank responses, and redirect failure parameters.
Most integration errors fall into one of four categories: JWT signing or structure, invalid product payloads, missing production whitelisting, or downstream bank rejection.
Error handling checklist
When a request fails:
- Decode the signed JWT and inspect the actual payload.
- Confirm the JWT was signed with
RS512using the private key that matches the public key registered with Feezback. - Confirm
issuses the formattpp/{TPP_ID}. - Confirm
srvmatches the product you are calling. - Confirm
encrypt: trueis present at the JWT top level for/linkrequests. - Confirm
flags, when used, are at the JWT top level and not insideflow. - Validate the product-specific payload fields.
- Confirm production creditor accounts are whitelisted when receiving funds.
- Check whether the bank or ASPSP has a known issue.
- Escalate to Feezback with the exact timestamp, environment, identifiers, and payload context if the issue persists.
Have a technical issue?Submit a technical support ticket on our support portal.
Common error codes
| Error | Meaning | Action |
|---|---|---|
1005 INVALID_JWT | The JWT is expired, malformed, signed with the wrong key, or does not match Feezback’s expected structure. | Decode the JWT, confirm claims and payload, regenerate it with a fresh RS512 signature, and retry. Escalate if the JWT appears correct. |
1006 | Creditor account is not whitelisted. | Contact Feezback to whitelist the account. |
400 INVALID_PAYMENT_PAYLOAD | A required payment field is missing or invalid. The offending field is usually named in the error message. | Fix the field and resubmit. |
400 IBAN_IS_NOT_WHITELISTED | Creditor account is not approved for production use. | Contact Feezback to approve the account. |
424 ASPSP_ERROR | The request passed Feezback validation but was rejected by the bank or ASPSP. | Contact Feezback with the paymentId, exact timestamp, environment, and request context. |
500 PAYMENT_REQUEST_FAILED | The payment request could not be created. | Retry. Escalate if the error persists. |
Errors that require Feezback action
Escalate immediately when you hit any of these codes:
1004
1006
1007
1010Also escalate when:
- You need a production creditor bank account whitelisted.
- You receive
1005 INVALID_JWTbut the decoded JWT appears correct. - A bank rejects a request with
424 ASPSP_ERRORand the request payload passed Feezback validation. - The documentation does not cover the behavior you are seeing.
JWT errors
JWT errors usually come from signing, claim, or payload placement issues.
Check the signing setup
| Check | Expected value |
|---|---|
| Algorithm | RS512 |
| Private key | Matches the public key registered with Feezback for the same environment. |
| Environment | Integration and production use separate registered public keys. |
| Signing location | Backend only. |
Check required claims
| Claim | Expected value |
|---|---|
iss | tpp/{TPP_ID} |
sub | User or request subject. |
srv | Product-specific service selector. |
iat / exp | Required for token flows such as Seamless and AIS API access. |
ttl | Required or recommended for token/link expiry depending on the flow. |
Check /link JWT structure
/link JWT structureFor /link requests, include encrypt: true at the top level.
{
"encrypt": true,
"iss": "tpp/{TPP_ID}",
"sub": "user-123",
"srv": "fast/user",
"flow": {
"id": "default"
}
}Do not place encrypt inside flow.
When debugging JWT issues, decode and inspect the signed JWT itself. Do not assume that the raw object in your application is identical to the payload that was signed.
Check flags placement
If you send flags, place them at the top level.
{
"encrypt": true,
"iss": "tpp/{TPP_ID}",
"sub": "user-123",
"srv": "fast/user",
"flags": {
"maskAccount": true
},
"flow": {
"id": "default"
}
}Do not nest flags inside flow.
A common integration mistake is nesting flags inside flow.
Payment payload errors
INVALID_PAYMENT_PAYLOAD means a field is missing, malformed, or outside the allowed rules for the product.
For FAST Single Payment and Periodic Payment, check:
| Field | Rule |
|---|---|
payment.creditor.account | Must be valid and approved by Feezback before production use. |
payment.transfer.amount.value | Use X.XX format. Minimum 1.00. Send null only when the payer should enter the amount. |
payment.transfer.currency.value | Use ILS for FAST. |
payment.remittanceInformationUnstructured | Maximum 28 characters. Hebrew, English, and spaces only. |
payment.periodic.occurences | Use 2–12 for periodic payments. |
payment.periodic.startDate | Required if occurences is sent. Use YYYY-MM-DD. |
For Fast Seamless, Request to Pay, and Bulk Payment, check the product-specific request page before resubmitting.
Account whitelist errors
Production payment flows can require creditor accounts to be pre-approved by Feezback.
| Error | Meaning | Action |
|---|---|---|
1006 | Creditor account is not whitelisted. | Contact Feezback. |
IBAN_IS_NOT_WHITELISTED | IBAN is not approved for production. | Contact Feezback and provide the creditor account details. |
Do not retry the same request repeatedly until the account is approved.
ASPSP and bank errors
424 ASPSP_ERROR means the request passed Feezback validation but failed at the bank or ASPSP.
Before escalating:
-
Check the live ASPSP issues feed:
https://fb.feezback.cloud/aspsp_issues.json -
Confirm the bank code and account details are correct.
-
Confirm the request was made in the correct environment.
-
Collect the
paymentIdorpaymentRequest, exact timestamp, environment, andcontext. -
Send the details to Feezback support.
Redirect failure parameters
Some hosted or redirect flows return a failure reason in the redirect parameters.
| Value | Meaning |
|---|---|
payment_error | Payment-level issue, such as insufficient balance, bank rejection, or incorrect IBAN. |
server_error | Technical fault at the bank or TPP. |
general_error | Unclassified error. |
access_denied | Missing consent or failed strong customer authentication (SCA). |
invalid_request | Missing field or invalid format. |
Use redirect failure parameters for user-facing recovery flows, but rely on webhooks and API responses for backend status tracking.
Troubleshooting missing webhooks
If the API request succeeded but no webhook arrives:
- Confirm your endpoint is reachable from the public internet or the expected network path.
- Confirm you whitelisted all Feezback webhook IPs for the environment.
- Confirm your endpoint accepts
POSTrequests. - Confirm your endpoint returns HTTP
200within 3 seconds. - Search logs by
context,paymentRequest,mandateId, oruser.
What to include when escalating
Include these details when contacting Feezback:
| Detail | Example |
|---|---|
| Environment | Integration or Production |
| Product | Single Payment, Fast Seamless, Mandate, AIS, VIEW, Bulk Payment |
| Endpoint | /link, /token, /payments, /bulk-payments, or data API path |
| Timestamp | Exact timestamp with timezone |
| TPP ID | Your TPP_ID |
| User identifier | sub or {sub}@{tpp_id} |
| Context | Your flow.context or request context |
| Payment or mandate ID | paymentRequest, paymentId, or mandateId when available |
| Error code | Full code and message |
| Decoded JWT payload | Redact secrets, but include the signed payload structure |
Related pages
| Page | Use it for |
|---|---|
| Environments & Security | JWT signing, encrypt, srv, and environment configuration. |
| Single Payment | FAST payment payload rules. |
| Fast Seamless | Seamless token and payments API flow. |
| Bulk Payment | Bulk payment payload and errors. |
| Webhooks | Webhook delivery and IP allowlisting. |
| Testing & Mock Bank | Mock Bank test details and test outcomes. |
Updated 7 days ago