Status Updates
Monitor payment link statuses with webhook updates
A webhook is an automated API call from feezback to an endpoint API on your side.
With every status change of your payment link, you will get a webhook event:PaymentStatusChanged
Match the webhook to your transfer or customerUse
payload.contextto correlate the webhook notification with a specific transaction. Usepayload.userto match to your unique user identifier.
Webhook implementation
- Implement a REST endpoint accepting POST requests
- Return HTTP 200 status code within 3 seconds
- Handle JSON payloads with timestamp, event, and payload fields
Webhook Event Details
- Event Type:
PaymentStatusChanged - Content Type:
application/json
Payload Structure
Top-Level Fields
| Field | Type | Description |
|---|---|---|
payload | Object | Contains the main payment transaction details |
event | String | The type of event that triggered the webhook |
timestamp | String | ISO 8601 timestamp of when the event occurred |
Payload Fields
Note: Do not limit payload fields, as additional fields may be passed by the bank in some scenarios.
| Field | Type | Description | Example |
|---|---|---|---|
user | String | User identifier - sub | "123456782@tppName" |
paymentRequest | String, up to 50 digits | Unique UUID for the payment request | "9739700b-bfe9-4754-b31b-c55da09577ec" |
psuId | String, up to 10 digits | Payment Service User ID | "123456782" |
requestedAmount | String, up to 7 digits | The amount requested for payment | "1.00" |
finalAmount | Object | Object containing final amount details | {"amount": "1", "currency": "ILS"} |
aspspCode | String, up to 6 digits | Bank identifier code | "20" |
accountNumber | String, up to 34 digits | IBAN or account number | "IL790205740000000101678" |
psuMessage | String, up to 21 digits | Message reference number (אסמכתא). Can be null if the bank did not send any, or if not a final status. | "002115" |
referenceNumber | String, up to 21 digits | Transaction reference number. Can be null if the bank did not send any, or if not a final status. | "002115" |
context | String, up to 50 digits | Free text from Payment LGS | "Fusion context" |
transferType | String: "masav" / "fp" / "zahav" | Type of transfer | "masav" |
accountType | String: "PRIVATE" / "BUSINESS" / "CORPORATE" | The type of the account: private, business, or corporate | "PRIVATE" |
corporateId | Number | 9-digit business number (ח.פ.) | "515555555" |
currentStatus | String, see payment status table below | Current status of the payment | "acceptedTechnicalValidation" |
previousStatus | String, see payment status table below | Previous status of the payment (can be null if this is the first status indication) | "received" |
recurring | Boolean | If true, the payment is recurring periodically (monthly). Only sent for periodic payments. | "True" |
startDate | ISO Date | The first execution date of periodic payments. Only sent for periodic payments. | "2025-12-12" |
occurrences | Number | The number of times a periodic payment transaction will be executed. If not sent, the payment has no pre-defined number of occurrences and will continue until cancelled. Only sent for periodic payments. | 3 |
tpp | String, up to 10 digits | Customer identifier | "tppID" |
Status Transitions
The webhook tracks status changes through:
previousStatus: The status before the changecurrentStatus: The new status after the change
Example transition: received → acceptedTechnicalValidation
Sample Webhook Payload
Single payment – payment approved
{
"payload": {
"user": "123456782@tppName",
"paymentRequest": "9739700b-bfe9-4754-b31b-c55da09577ec",
"psuId": "123456782",
"requestedAmount": "1.00",
"finalAmount": {
"amount": "1.00",
"currency": "ILS"
},
"aspspCode": "20",
"accountNumber": "IL790205740000000101678",
"psuMessage": "002115",
"referenceNumber": "002115",
"context": "Fusion context",
"transferType": "masav",
"currentStatus": "acceptedTechnicalValidation",
"previousStatus": "received",
"tpp": "{organizationId}"
},
"event": "PaymentStatusChanged",
"timestamp": "2025-01-18T18:25:54.114182+00:00"
}Periodic payment – payment request received by the bank
{
"timestamp": "2026-04-07T11:38:21.491871+00:00",
"event": "PaymentStatusChanged",
"payload": {
"user": "{user}@{organization}",
"paymentRequest": "a2d4a116-3da4-4fdd-85d3-41739dc5cbd0",
"psuId": "204293062",
"requestedAmount": "1",
"finalAmount": false,
"aspspCode": "11",
"accountNumber": "IL710110950000102188000",
"psuMessage": null,
"referenceNumber": null,
"remittanceInformationUnstructured": "Fusion payment description",
"context": "Fusion context",
"transferType": "fp",
"accountType": "PRIVATE",
"corporateId": null,
"lastStatusChange": null,
"currentStatus": "received",
"previousStatus": null,
"recurring": true,
"startDate": "2027-12-18",
"occurrences": 3,
"tpp": "{organizationId}"
}
}Updated 20 days ago
Did this page help you?