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.
How the Bulk Payment flow works
- Build a JWT with
srv: "seamless/tpp". - Sign the JWT with your private key using
RS512. - Send the signed JWT to Feezback’s
/tokenendpoint. - Receive a bearer token that is valid for 600 seconds.
- Call the TPP bulk payments API with the bearer token.
- Receive a redirect URI for authorized-signatory approval.
- Redirect the authorized signatory to approve the batch.
- 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}"
}'| Environment | Token endpoint |
|---|---|
| Integration | https://lgs-integ01.feezback.cloud/token |
| Production | https://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-paymentsUse the correct TPP API host:
| Environment | TPP API host |
|---|---|
| Integration | https://integ01-tpp.feezback.cloud |
| Production | https://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
| Field | Type | Required | Notes |
|---|---|---|---|
idValue | string | Yes | Authorized signatory identifier. |
corporateId | string | Yes | Corporate identifier. Must be 9 digits and start with 51. |
debtorName | string | Yes | Debtor business name. |
accountType | string | Yes | Use business or corporate. |
debtorAccount | string | Yes | Debtor account funding the payout. |
remittanceInformationUnstructured | string | Yes | Batch-level remittance information. |
executionDate | string | No | Optional future execution date. Use YYYY-MM-DD format. |
purposeCode | string | Conditional | Use SALA for salary payments only. |
context | string | Recommended | Client context returned in status updates. |
payments | array | Yes | List of outbound payments in the batch. |
userAgreementTimestamp | string | Yes | Timestamp of the user’s agreement in ISO 8601 format. |
redirectSuccess | string | Yes | Redirect URL for successful completion. |
redirectFailure | string | Yes | Redirect URL for failure. |
redirectNotComplete | string | Yes | Redirect URL when the signer does not complete the flow. |
redirectNotConclusive | string | Yes | Redirect URL when the result is not conclusive. |
Payment item fields
| Field | Type | Required | Notes |
|---|---|---|---|
payments[].instructedAmount.currency | string | Yes | Payment currency. Use ILS for the documented ILS flow. |
payments[].instructedAmount.amount | string | Yes | Payment amount. |
payments[].remittanceInformationUnstructured | string | Yes | Payment-level remittance information. |
payments[].creditor.name | string | Yes | Receiver name. |
payments[].creditor.account | string | Yes | Receiver account. |
Limits and rules
| Rule | Details |
|---|---|
| Account type | Use business or corporate. |
| Corporate ID | Must be 9 digits and start with 51. |
| Salary payments | Use purposeCode: "SALA" only for salary payments. |
| Future execution | Use executionDate for optional future-dated execution. |
| Hapoalim batch size | Maximum 100 items per bulk payment. |
| Production creditor accounts | Creditor accounts may need to be approved before production use. |
Statuses
Bulk payments progress through bank statuses.
RCVD → PATC / PART → ACTC / ACWC / RJCT / CANC| Status | Meaning |
|---|---|
RCVD | Initial request received. |
PATC | In progress. |
PART | Partially processed or partially authorized. |
ACTC | Final successful status. |
ACWC | Final successful status with change. |
RJCT | Final unsuccessful status: rejected. |
CANC | Final unsuccessful status: cancelled. |
Common error codes
| HTTP | Code | Meaning | Action |
|---|---|---|---|
400 | INVALID_PAYMENT_PAYLOAD | A field is missing or invalid. The offending field is named in the error message. | Fix the payload and resubmit. |
400 | IBAN_IS_NOT_WHITELISTED | Creditor account is not approved in production. | Contact Feezback to whitelist the account. |
424 | ASPSP_ERROR | The request passed Feezback validation but was rejected by the bank. | Contact Feezback with the paymentId and exact timestamp. |
500 | PAYMENT_REQUEST_FAILED | The 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 ID | Result |
|---|---|
200200202 | Accepted — technical validation |
998814644 | Rejected |
320634389 | Partially authorized |
Updated 29 days ago