Bulk Payouts (BETA)

Create a link for direct approval of a list of outgoing transactions

Bulk Payouts lets a businesses submit multiple outbound bank transfer requests using a smart link . Use it for supplier payments, payroll, pension or provident-fund payments, and refunds.

What you need to know before you start

  • Bulk payouts uses each bank's Bulk service for processing multiple business payouts approval and execution flows.

    Different approval and execution rules may apply according to the bank account authorizations requirements.

  • Bulk payouts initiates the approval process from a specific authorizer identified with personal ID (ת.ז.) and corportate ID (ח.פ.).

  • Authorized bank signatories need to approve the batch on their bank app/website to complete the execution approval process.

  • Feezback monitors the execution approval process and sends webhook updates when the first and last assignees complete approval.

Business/Corporate accounts only

Bulk Payouts are supported for corporate accounts only.

Supported banks

Bank specific limitations
Leumi10
Hapoalim12Up to 100 payments in a bulk
Discount/Mercantile11,17Ongoing production bug on the bank
Mizrahi 20
FIBI group 14, 26, 31, 46, 52Ongoing production bug on the bank

How the Bulk Payment flow works

  1. Build a JWT with srv: "seamless/tpp".
  2. Sign the JWT with your private key using RS512.
  3. Send the signed JWT to Feezback’s /token endpoint.
  4. Receive a bearer token that is valid for 600 seconds.
  5. Call the TPP bulk payments API with the bearer token.
  6. Receive a redirect URI for authorized-signatory approval.
  7. Redirect the authorized signatory to approve the batch.
  8. Receive status updates as the bank processes the request.

1. Request a bearer token

Create a JWT for the Seamless token flow.

{
  "sub": "sub",
  "iss": "tpp/{TPP_ID}",
  "srv": "seamless/tpp",
  "iat": 1728986260,
  "exp": 1728986860,
  "ttl": 600
}

Send the signed JWT to the /token endpoint.

curl --location --request POST 'https://{ENVIRONMENT}.feezback.cloud/token' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "token": "{GENERATED_JWT_TOKEN}"
  }'
EnvironmentToken endpoint
Integrationhttps://lgs-integ01.feezback.cloud/token
Productionhttps://lgs-prod.feezback.cloud/token

2. Create the bulk payment

Call the TPP bulk payments API with the bearer token.

POST https://{TPP_ENVIRONMENT}-tpp.feezback.cloud/tpp/v1/users/{sub}@{tpp_id}/bulk-payments

Use the correct TPP API host:

EnvironmentTPP API host
Integrationhttps://integ01-tpp.feezback.cloud
Productionhttps://prod-tpp.feezback.cloud

Example request body:

{
  "idValue": "200200202",
  "corporateId": "511234567",
  "debtorName": "Debtor Ltd",
  "accountType": "corporate",
  "debtorAccount": "120120-001-999999",
  "remittanceInformationUnstructured": "Monthly payroll",
  "executionDate": "2026-03-03",
  "purposeCode": "SALA",
  "context": "batch-2026-03",
  "payments": [
    {
      "instructedAmount": {
        "currency": "ILS",
        "amount": "123"
      },
      "remittanceInformationUnstructured": "Salary - employee 1",
      "creditor": {
        "name": "Employee One",
        "account": "12-538-693304"
      }
    }
  ],
  "userAgreementTimestamp": "2026-02-02T11:14:05.435Z",
  "redirectSuccess": "https://success",
  "redirectFailure": "https://failure",
  "redirectNotComplete": "https://notComplete",
  "redirectNotConclusive": "https://notConclusive"
}

Request fields

FieldTypeRequiredNotes
idValuestringYesAuthorized signatory identifier.
corporateIdstringYesCorporate identifier. Must be 9 digits and start with 51.
debtorNamestringYesDebtor business name.
accountTypestringYesUse business or corporate.
debtorAccountstringYesDebtor account funding the payout.
remittanceInformationUnstructuredstringYesBatch-level remittance information.
executionDatestringNoOptional future execution date. Use YYYY-MM-DD format.
purposeCodestringConditionalUse SALA for salary payments only.
contextstringRecommendedClient context returned in status updates.
paymentsarrayYesList of outbound payments in the batch.
userAgreementTimestampstringYesTimestamp of the user’s agreement in ISO 8601 format.
redirectSuccessstringYesRedirect URL for successful completion.
redirectFailurestringYesRedirect URL for failure.
redirectNotCompletestringYesRedirect URL when the signer does not complete the flow.
redirectNotConclusivestringYesRedirect URL when the result is not conclusive.

Payment item fields

FieldTypeRequiredNotes
payments[].instructedAmount.currencystringYesPayment currency. Use ILS for the documented ILS flow.
payments[].instructedAmount.amountstringYesPayment amount.
payments[].remittanceInformationUnstructuredstringYesPayment-level remittance information.
payments[].creditor.namestringYesReceiver name.
payments[].creditor.accountstringYesReceiver account.

Limits and rules

RuleDetails
Account typeUse business or corporate.
Corporate IDMust be 9 digits and start with 51.
Salary paymentsUse purposeCode: "SALA" only for salary payments.
Future executionUse executionDate for optional future-dated execution.
Hapoalim batch sizeMaximum 100 items per bulk payment.
Production creditor accountsCreditor accounts may need to be approved before production use.

Statuses

Bulk payments progress through bank statuses.

RCVD → PATC / PART → ACTC / ACWC / RJCT / CANC
StatusMeaning
RCVDInitial request received.
PATCIn progress.
PARTPartially processed or partially authorized.
ACTCFinal successful status.
ACWCFinal successful status with change.
RJCTFinal unsuccessful status: rejected.
CANCFinal unsuccessful status: cancelled.

Common error codes

HTTPCodeMeaningAction
400INVALID_PAYMENT_PAYLOADA field is missing or invalid. The offending field is named in the error message.Fix the payload and resubmit.
400IBAN_IS_NOT_WHITELISTEDCreditor account is not approved in production.Contact Feezback to whitelist the account.
424ASPSP_ERRORThe request passed Feezback validation but was rejected by the bank.Contact Feezback with the paymentId and exact timestamp.
500PAYMENT_REQUEST_FAILEDThe payment could not be created.Retry. Escalate if persistent.

Testing outcomes

Use the 5-digit test account 12345 with these PSU IDs to test bulk payout outcomes.

Test PSU IDResult
200200202Accepted — technical validation
998814644Rejected
320634389Partially authorized



Did this page help you?