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
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
an additional reference value the bank may optionally return, which may include other bank-specific references (distinct from the regulated `psuMessage`)
"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"
paymentMethod
String
Fixed
The paymentMethod used for the payment:
  • 'PIS' for payment links.
  • 'RTP' for immediate payment requests.
  • 'OB_RTP' for open banking payment requests
resourceId
String
Fixed for payment link. Replaced with 'instructionId' for payment requests.
Bank-side resource identifier for the payment.
lastStatusChange
ISO datetime
Fixed
Timestamp of the most recent status transition
remittanceInformation
Unstructured
String
Fixed
Free-text for payment description (סיבת ההעברה). You may set it in advance via the JWT.
remittanceInformation
UnstructuredMatch
String
Optional — only present when the creditor account is connected via the Match service
The unique value Feezback embeds inside remittanceInformationUnstructured so the payment can be identified on the creditor's bank statement (see the executed status note below).


Status Transitions

The webhook tracks status changes through:

  • previousStatus: The status before the change
  • currentStatus: 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}"
  }
}


Did this page help you?