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:

  1. Decode the signed JWT and inspect the actual payload.
  2. Confirm the JWT was signed with RS512 using the private key that matches the public key registered with Feezback.
  3. Confirm iss uses the format tpp/{TPP_ID}.
  4. Confirm srv matches the product you are calling.
  5. Confirm encrypt: true is present at the JWT top level for /link requests.
  6. Confirm flags, when used, are at the JWT top level and not inside flow.
  7. Validate the product-specific payload fields.
  8. Confirm production creditor accounts are whitelisted when receiving funds.
  9. Check whether the bank or ASPSP has a known issue.
  10. 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

ErrorMeaningAction
1005 INVALID_JWTThe 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.
1006Creditor account is not whitelisted.Contact Feezback to whitelist the account.
400 INVALID_PAYMENT_PAYLOADA 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_WHITELISTEDCreditor account is not approved for production use.Contact Feezback to approve the account.
424 ASPSP_ERRORThe 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_FAILEDThe 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
1010

Also escalate when:

  • You need a production creditor bank account whitelisted.
  • You receive 1005 INVALID_JWT but the decoded JWT appears correct.
  • A bank rejects a request with 424 ASPSP_ERROR and 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

CheckExpected value
AlgorithmRS512
Private keyMatches the public key registered with Feezback for the same environment.
EnvironmentIntegration and production use separate registered public keys.
Signing locationBackend only.

Check required claims

ClaimExpected value
isstpp/{TPP_ID}
subUser or request subject.
srvProduct-specific service selector.
iat / expRequired for token flows such as Seamless and AIS API access.
ttlRequired or recommended for token/link expiry depending on the flow.

Check /link JWT structure

For /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:

FieldRule
payment.creditor.accountMust be valid and approved by Feezback before production use.
payment.transfer.amount.valueUse X.XX format. Minimum 1.00. Send null only when the payer should enter the amount.
payment.transfer.currency.valueUse ILS for FAST.
payment.remittanceInformationUnstructuredMaximum 28 characters. Hebrew, English, and spaces only.
payment.periodic.occurencesUse 2–12 for periodic payments.
payment.periodic.startDateRequired 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.

ErrorMeaningAction
1006Creditor account is not whitelisted.Contact Feezback.
IBAN_IS_NOT_WHITELISTEDIBAN 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:

  1. Check the live ASPSP issues feed:

    https://fb.feezback.cloud/aspsp_issues.json
  2. Confirm the bank code and account details are correct.

  3. Confirm the request was made in the correct environment.

  4. Collect the paymentId or paymentRequest, exact timestamp, environment, and context.

  5. Send the details to Feezback support.

Redirect failure parameters

Some hosted or redirect flows return a failure reason in the redirect parameters.

ValueMeaning
payment_errorPayment-level issue, such as insufficient balance, bank rejection, or incorrect IBAN.
server_errorTechnical fault at the bank or TPP.
general_errorUnclassified error.
access_deniedMissing consent or failed strong customer authentication (SCA).
invalid_requestMissing 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:

  1. Confirm your endpoint is reachable from the public internet or the expected network path.
  2. Confirm you whitelisted all Feezback webhook IPs for the environment.
  3. Confirm your endpoint accepts POST requests.
  4. Confirm your endpoint returns HTTP 200 within 3 seconds.
  5. Search logs by context, paymentRequest, mandateId, or user.

What to include when escalating

Include these details when contacting Feezback:

DetailExample
EnvironmentIntegration or Production
ProductSingle Payment, Fast Seamless, Mandate, AIS, VIEW, Bulk Payment
Endpoint/link, /token, /payments, /bulk-payments, or data API path
TimestampExact timestamp with timezone
TPP IDYour TPP_ID
User identifiersub or {sub}@{tpp_id}
ContextYour flow.context or request context
Payment or mandate IDpaymentRequest, paymentId, or mandateId when available
Error codeFull code and message
Decoded JWT payloadRedact secrets, but include the signed payload structure

Related pages

PageUse it for
Environments & SecurityJWT signing, encrypt, srv, and environment configuration.
Single PaymentFAST payment payload rules.
Fast SeamlessSeamless token and payments API flow.
Bulk PaymentBulk payment payload and errors.
Webhooks Webhook delivery and IP allowlisting.
Testing & Mock BankMock Bank test details and test outcomes.

Did this page help you?