Webhooks and Notifications

Retrieve notifications through webhooks on transaction events and status changes

About Our Webhooks 📣

Receive notifications/alerts on every new transaction or transaction status change in any of your inabit organizations within your account, as well as fee updates for a transaction.

There are two endpoints you can use with our Webhooks:

Webhook endpoints are accessible only to the following user roles: Owner, Admin, API Admin

Our webhook service is currently limited to 1 subscription per organization.

  • Events Handled:

    • New Transaction Event

    • Transaction Status Updates (Incl. txn fee updates)

  • Supported transaction types:

    • Received (Deposits)

    • Sent (Withdrawals)

For further information regarding transaction types (events), refer to the Notification Types subpage.

Create Subscription

In order to create a subscription on our GraphQL API, you'll need to call the following mutation:

mutation CreateSubscription($data: SubscriptionCreateInput!) {
  createSubscription(data: $data) {
  id,
  token
  }
}

Headers

NameValue

Content-Type

application/json

Authorization

Bearer <token>

Body (SubscriptionCreateInput object)

NameTypeDescription

id*

string

ID of the organization in inabit

url*

string

URL for the webhook service to send notifications towards

Example body:

{
  "data": {
    "organization": {
      "id": "clu1dzpny0007vjto1gxhl5my"   # inabit organization Id
    },
    "url": "https://studio.apollographql.com",   # Webhook for subscriber
  }
}

Response

{
  "data": {
    "createSubscription": {
      "id": "clugv892y0000vjhga8ugol38",   # Created subscription Id
      "token": "sub_c028ef8d-b8b9-49c0-b5a9-f7451884b834"   # Unique generated token recognized by inabit
    }
  }
}

In the mutation's response, the following is retrieved:

ID - The ID of the subscription that was created.

Token - A unique token generated by inabit.

  • The token will be the identifying the webhook resource for the subscriber set as a header: 'authorization' : (i.e. - sub_c028ef8d-b8b9-49c0-b5a9-f7451884b834)

Remember - You can always query data and fetch all of an organization's subscriptions in case its hard to keep track, see query below.

query Subscriptions($where: SubscriptionWhereInput) {
  subscriptions(where: $where) {
  id  
  token
  }
}

Body (SubscriptionWhereInput object)

NameTypeDescription

id*

string

ID of the organization in inabit

Delete Subscription

In order to delete a subscription, the following mutation needs to be used:

mutation DeleteSubscription($where: SubscriptionWhereUniqueInput!) {
  deleteSubscription(where: $where) {
  id  
  }
}

Headers

NameValue

Content-Type

application/json

Authorization

Bearer <token>

Body (SubscriptionWhereUniqueInput object)

NameTypeDescription

id*

string

Subscription ID

Example body:

body:
{
  "where": {
    "id": "clu5bxctk0003vje4n4pqfdya"   # Subscription Id
  }
}

Response

{
  "data": {
    "deleteSubscription": {
      "id": "clugwvbm70007vj4w74gxch3u"
    }
  }
}