Notifications
1. Where to find the notifications
All the required information in the transaction, is sent to the notification URL provided.
A sample of the objects is given below.
To receive notifications on the configured URL, your URL must end with /v1/notification.
Example: “https://test.com/v1/notification”
2. Receive Notification Request
The code provided (below right) is a sample of a notification, after a transaction.
In the response, you will be able to find all the required information regarding the transaction.
If your endpoint does not return a 2XX HTTP status code, ISX will attempt to retry with additional POST(s).
The notification will be attempted in the following intervals, until a response is received: 5 seconds, 1 minute, 1 hour, 6 hours, 12 hours, 1 day, and finally one more day.
A merchant can receive web hooks in any order. ISX does not allow for FIFO (First In First Out). If the merchant API is down on the first notification, ISX is not able to hold up the system for the rest of the notifications. A merchant needs to implement final states. If a merchant receives a final state (e.g., transaction_accepted), then the merchant can ignore all the other notifications.
Data Types
Field | Type | Description |
---|---|---|
id | String | Unique response identification code. |
secret | String | The transaction secret code. |
mode | String | The transaction mode detected by ISX. |
recurring_transaction | Boolean | Whether the transaction was a recurring operation or not. |
original_message | Object | Information about your transaction request. |
workflow_state | Object | State information about the workflow. |
event | String | Event name of the notification. Refer to Transaction Events & States for full list. |
state | String | State of the transaction. Refer to Transaction Events & States. |
compound_state | String | Compound State of the transaction. Refer to Transaction Events & States. |
card_reference | Object | Information of the card that was used. |
payment_provider_responses | Array | Information about payments or credits made. |
payment_amount | Object | Original requested payment amount. |
identity | Object | Information about the identity. |
response_code | String | Response code of the transaction. Refer to Transaction Events & States. |
response_code_description | String | Response code description. |
test_transaction | Boolean | Denotes use of Test Card. |
Sample Notification
{
"id":"885e3506-eb13-4d2c-bc24-e336aaf94037",
"secret":"083daa84-77b6-4817-a4f3-5771779c1c82",
"mode":"registration",
"recurring_transaction":false,
"original_message":{
"merchant_id":"widgets-pty-ltd",
"transaction_id":"6efa5fac-89de-4e75-a2f9-4d34333e7cf1",
"reference":"256b4622-ea1d-4af0-8326-a276a0627810",
"account":{
"identifier":"Test_ID",
"ext":{
}
}
},
"workflow_state":{
"capture":"SUCCESS",
"charge":"SUCCESS",
"credit":"NA",
"3ds":"SUCCESS",
"piv":"SUCCESS",
"sca":"SUCCESS",
"docs":"NA",
"kyc":"NA"
},
"event":"transaction_accepted",
"state":"SUCCESS",
"compound_state":"SUCCESS.COMPLETE",
"card_reference":{
"masked_pan":"411111....1111",
"card_brand":"VISA",
"expiry_date":"1222",
"recurring_id":"f7fb955_15fc0a831d7__7fa7"
},
"payment_provider_responses":[
{
"operation_type":"authorization-and-capture",
"operation_successful":true,
"provider_type":"credit_card",
"provider_name":"ISXPay",
"request_currency":"EUR",
"reference_code":"349351111111111111",
"provider_reference_code":"1111111111",
"response_id":"11111111111",
"status_code":"OK000",
"status_description":"Success"
}
],
"payment_amount":{
"currency":"EUR",
"amount":3100
},
"identity":{
"id":"_b103fc0_158a2f3a950__7e12",
"download_url":"https://gateway.isignthis.com/v1/identity/_b103fc0_158a2f3a950__7e12",
"ledger_lifetime_amount":"63828",
"ledger_lifetime_currency":"EUR",
"credit_ledger_lifetime_amount":"14625",
"credit_ledger_lifetime_currency":"EUR",
"kyc_state":"NONE",
"created_at":"2016-11-26T23:34:51.301Z"
},
"response_code":"00",
"response_code_description":"Approved and completed successfully",
"test_transaction":false
}
3. Additional Notification Information
Currently, we do not have a notification which alerts the merchant if a card is enrolled in 3DS or not.
There are settings which decide what action to take if a card is enrolled or not.
Discuss with the ISX relationship management team for these workflow settings.
This notification is upcoming in future releases.
4. Verify Notification Checksum (optional)
Every notification will include the X-ISX-Checksum header. This header will hold the hash-based message authentication code (HMAC) value of the notification body.
The notification body is hashed using the SHA256 HMAC algorithm, using a unique key generated for this purpose. It is provided to you with the name of Notification Token.
To generate the hash you should be using the RAW BODY of the response with the Key that was provided to you.
The resulting hash is base64-encoded.
The header can be used to verify that the notification message has not been tampered with, while in transit.
© ISX Financial EU PLC 2024. All rights reserved.