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 customer

Use payload.context to correlate the webhook notification with a specific transaction. Use payload.user to 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

FieldTypeDescription
payloadObjectContains the main payment transaction details
eventStringThe type of event that triggered the webhook
timestampStringISO 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.

FieldTypeDescriptionExample
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 change
  • currentStatus: The new status after the change

Example transition: receivedacceptedTechnicalValidation


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}"
  }
}


Did this page help you?