Callbacks
After creating Deposit & Withdraw requests, we send POST status updates in JSON format to the callback endpoint you provide. You can review the parameters included in these callbacks below.
We may send multiple callbacks for a single transaction. For example, after a successful deposit, we will send a callback indicating a “successful” status. However, in the event of a system-related issue, the transaction may later become unsuccessful, and we will send an updated callback again.
To avoid inconsistencies, please ensure that you process each callback only once.
Callback operation
When you create a Deposit or Withdraw request, we send you a callback containing the unique transactionId generated for that transaction. There may be slight differences in some parameters between Deposit and Withdraw callbacks, so please review them carefully.
Deposit Callback Payload
- Name
hash- Type
- string
- Description
Signature generated by us for callback verification.
- Name
transactionId- Type
- string
- Description
The unique ID assigned to the transaction.
- Name
bankId- Type
- string
- Description
The ID of the relevant bank.
- Name
bank- Type
- string
- Description
Name of the relevant bank.
- Name
amount- Type
- number
- Description
Final transaction amount (this is the value you should process).
- Name
type- Type
- string
- Description
Transaction type (
deposit).
- Name
bankAccountName- Type
- string
- Description
Name of the bank account where the deposit was made.
- Name
bankAccountIban- Type
- string
- Description
Bank account number (IBAN) where the deposit was made.
- Name
status- Type
- string
- Description
Transaction status (
successfulorunsuccessful).
- Name
statusReason- Type
- string
- Description
Reason for failure, applicable if
statusisunsuccessful.
- Name
name- Type
- string
- Description
The
namevalue you provided when creating the deposit transaction.
- Name
userName- Type
- string
- Description
The
userNamevalue you provided when creating the deposit transaction.
- Name
userId- Type
- string
- Description
The
userIdvalue you provided when creating the deposit transaction.
- Name
processId- Type
- string
- Description
The
processIdvalue you provided when creating the deposit transaction.
- Name
convertedName- Type
- string
- Description
A slugified version of the
namevalue you provided during transaction creation.
POST to your-callback-url
Body JSON Payload
{
"hash": "zzunnCrv6Sb38TU/dPYIl+9TKd8gT6iqrcxv+V32AFs=",
"transactionId": "6575078b9e6bb1554a50b7b1",
"bankId": "507f1f77bcf86cd799439011",
"amount": 500,
"userId": "987654",
"name": "Test User",
"userName": "testUserName",
"processId": "123456789",
"type": "deposit",
"convertedName": "testuser",
"bank": "Fake Bank",
"bankAccountName": "Fake Bank Account Name",
"bankAccountIban": "TR280006276256222621885935",
"status": "successful",
"statusReason": null
}
Withdraw Callback Payload
- Name
hash- Type
- string
- Description
Signature generated by us for callback verification.
- Name
transactionId- Type
- string
- Description
The unique ID assigned to the transaction.
- Name
bankId- Type
- string
- Description
The ID of the relevant bank.
- Name
bank- Type
- string
- Description
Name of the relevant bank.
- Name
amount- Type
- number
- Description
Final transaction amount (this is the value you should process).
- Name
type- Type
- string
- Description
Transaction type (
withdrawal).
- Name
accountName- Type
- string
- Description
The
accountNamevalue you provided when creating the withdrawal request.
- Name
iban- Type
- string
- Description
The
ibanvalue you provided when creating the withdrawal request.
- Name
status- Type
- string
- Description
Transaction status (
successfulorunsuccessful).
- Name
statusReason- Type
- string
- Description
Reason for failure, applicable if
statusisunsuccessful.
- Name
name- Type
- string
- Description
The
namevalue you provided when creating the withdrawal request.
- Name
userName- Type
- string
- Description
The
userNamevalue you provided when creating the withdrawal request.
- Name
userId- Type
- string
- Description
The
userIdvalue you provided when creating the withdrawal request.
- Name
processId- Type
- string
- Description
The
processIdvalue you provided when creating the withdrawal request.
- Name
convertedName- Type
- string
- Description
A slugified version of the
namevalue you provided during transaction creation.
POST to your-callback-url
Body JSON Payload
{
"hash": "zzunnCrv6Sb38TU/dPYIl+9TKd8gT6iqrcxv+V32AFs=",
"transactionId": "6575078b9e6bb1554a50b7b1",
"bankId": "507f1f77bcf86cd799439011",
"amount": 500,
"userId": "987654",
"name": "Test User",
"userName": "testUserName",
"processId": "123456789",
"type": "withdrawal",
"convertedName": "testuser",
"bank": "Fake Bank",
"accountName": "Test User",
"iban": "TR280006276256222621885935",
"status": "successful",
"statusReason": null
}
Hash Validation
Callback requests include a hash parameter generated by us. You can validate callbacks using this value. Since the method is identical to Signature creation, the implementation should feel familiar. Sample code and formulas are provided below.
Create Hash Validation
const apiSecret = "e59de9db1246eef0423a8c9045bdc5c9ea5729695cf792d065cac10373add831";
const transactionId = "6575078b9e6bb1554a50b7b1";
const bankId = "507f1f77bcf86cd799439011";
const amount = "500";
const hash = `${transactionId}${bankId}${amount}`;
const sign = crypto.createHmac("sha256", apiSecret).update(hash).digest().toString("base64");
console.log(sign);