ewalletTransaction/create webhook notification

The UNIPaaS system will update your platform of each transaction via the ewalletTransaction/create webhook. Including incoming and outgoing transactions. In most cases, you will receive more than one webhook notification for each transaction, as separate notifications will be fired for fees and splitted payments.

ewalletTransaction/create webhook

Use the ewalletTransaction/create webhook to keep your platform updated about every transaction that goes into or out of your vendor's eWallets, including fees and statuses.

Webhook fields and examples

The following is an example for the EwalletTransaction/create, for an incoming transaction (a vendor on your platform has received a payment)

{
  "merchantId": "634801efbf65c800ef3e66df",
  "vendorId": "634803b8e81da8def11e4329",
  "id": "152309",
  "amount": 10,
  "currency": "GBP",
  "reference": "INV-0063",
  "fees": 0,
  "type": "Charge",
  "transactionId": "639ed03d1258510111196a9e",
  "authorizationId": "639ed03d1258517389196a98",
  "transactionType": "Sale",
  "transactionResult": "Approved",
  "paymentMethod": "card",
  "payoutId": null,
  "brand": "visa",
  "issuerCountry": "GB",
  "reconciled": "false",
  "eWalletId": "105228",
  "netAmount": 10,
  "pendingAmount": 10,
  "payableAmount": 0,
  "reservedAmount": 0,
  "payableBalance": 49.95,
  "reservedBalance": 0,
  "identificationReference": "2535",
  "feeDesription": null,
  "hint": "",
  "metadata": {
    "accountCode": "090",
    "clientId": "18F8E1942DD04BB3B5E5A9551AB161C1",
    "clientSecret": "NL6CtohuGBtbW5jS55UrnDqO5GwS2sANcLLddUE-eFHzL9Qz"
  },
  "createdAt": "2022-12-18T08:33:04.763Z"
}
📘

Multiple webhook notifications for each transaction

You will receive multiple ewalletTransaction/create webhook notifications for most transactions. Each webhook notifications will represent a different aspect of a transaction, such as fees, authorization, etc.

Filtering out notifications

Some webhook notifications should be used by your platform to update the invoice status and account ledger. The following table will help you listen only to the relevant notifications.

We recommend you filter out all ewalletTransaction/create webhook notifications, except the following:

Description

transactionType

value

transactionResult

value

reconciled

value

Action

A payment was received

Sale

Approved

false

Update the invoice with PAID status

Update the account ledger

Required

A payment was refunded

Refund

Approved

false

Update the invoice with REFUNDED status

Update the account ledger

Required

A payout was made to a vendor's bank account

Payout

Approved

irrelevant

Update the invoice PAID INTO BANK ACCOUNT status

Update the account ledger

Required

A payment was settled (funds are available)

Sale

Approved

true

Optional

📘

Payment attribution

Every webhook notification will contain a vendorId field which is used to attribute a transaction to a specific user on your platform.

Some transactions are attributed to your platform, these transactions will have the same ID in both vendorId and 'merchantId` fields

Object fields

The following table describes the most important ewalletTransaction/create object fields:

Field

Description

vendorId

The unique id of the vendor this transaction is relevant for

merchantId

The unique id of the merchant this transaction is relevant for

id

The unique id of the record

amount

Transaction amount

currency

Transaction currency

reference

  • Invoice number or reference number for incoming payments
  • null for outgoing payments

fees

  • The sum amount of fees deducted for this transaction

type

  • Transaction type (it's better to use transactionType field)

transactionId

  • Identifier of this specific transaction

authorizationId

  • identifier of the authorization (refunds and chargebacks will have the same authorizationId as the original transaction)

transactionType

  • Represents the type of the transaction (Use this field to filter notifications)

transactionResult

Approved - Incoming transaction was successfully executed
Declined - An incoming transaction attempt was declined
Pending - An incoming transaction is still processing
Error - There was an error with the transaction
Created - An outgoing transaction was successfully executed.
Cancelled - An outgoing transaction was cancelled

  • Some transactionResult values are relevant to specific transactionType values. These are shown in the table below.

paymentMethod

Indicates the payment method that was used to take the payment.

payoutId

A unique ID of an outgoing payment transaction.

brand

The card/bank brand that was used to take the payment.

issuerCountry

Issuer country of the credit card that used during the payment

reconciled

  • Indicates if an incoming transaction was reconciled
  • Not relevant for outgoing transactions

eWalletId

  • The ID of the eWallet that the transaction webhook is relevant for

netAmount

  • The transaction amount after deductions

pendingAmount

  • The transaction amount that is still not reconciled

payableAmount

  • The transaction amount that is available for payout after reconciliation

reservedAmount

  • The transaction amount that is reserved for risk purposes

payableBalance

  • The ewallet balance that is available for payout

reservedBalance

  • The ewallet balance that is reserved for risk purposes

consumerEmail

  • Email of the consumer that made the payment

consumerName

  • Name of the consumer that made the payment

consumerReference

  • Reference of the consumer that made the payment

identificationReference

  • Identification reference for payment method that has been used for the payment

feeDesription

  • Explanation about fees that has been charged for the payment

hint

  • Some hint related to fees

metadata

  • Field for custom data that has been used during checkout creation (useful for passing some internal properties)

checkoutId

  • A unique ID of the checkout used for this payment

createdAt

  • Timestamp for ewallet transaction entity