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.

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 ( successful or unsuccessful ).

  • Name
    statusReason
    Type
    string
    Description

    Reason for failure, applicable if status is unsuccessful.

  • Name
    name
    Type
    string
    Description

    The name value you provided when creating the deposit transaction.

  • Name
    userName
    Type
    string
    Description

    The userName value you provided when creating the deposit transaction.

  • Name
    userId
    Type
    string
    Description

    The userId value you provided when creating the deposit transaction.

  • Name
    processId
    Type
    string
    Description

    The processId value you provided when creating the deposit transaction.

  • Name
    convertedName
    Type
    string
    Description

    A slugified version of the name value 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 accountName value you provided when creating the withdrawal request.

  • Name
    iban
    Type
    string
    Description

    The iban value you provided when creating the withdrawal request.

  • Name
    status
    Type
    string
    Description

    Transaction status ( successful or unsuccessful ).

  • Name
    statusReason
    Type
    string
    Description

    Reason for failure, applicable if status is unsuccessful.

  • Name
    name
    Type
    string
    Description

    The name value you provided when creating the withdrawal request.

  • Name
    userName
    Type
    string
    Description

    The userName value you provided when creating the withdrawal request.

  • Name
    userId
    Type
    string
    Description

    The userId value you provided when creating the withdrawal request.

  • Name
    processId
    Type
    string
    Description

    The processId value you provided when creating the withdrawal request.

  • Name
    convertedName
    Type
    string
    Description

    A slugified version of the name value 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);

Was this page helpful?