Remote Approver App WebhooksRetrieve 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:
Transaction Status Updates (Incl. txn fee updates)
Supported transaction types:
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 :
Copy mutation CreateSubscription($data: SubscriptionCreateInput!) {
createSubscription(data: $data) {
id,
token
}
}
Body ( SubscriptionCreateInput object)
ID of the organization in inabit
URL for the webhook service to send notifications towards
Example body:
Copy {
"data": {
"organization": {
"id": "clu1dzpny0007vjto1gxhl5my" # inabit organization Id
},
"url": "https://studio.apollographql.com", # Webhook for subscriber
}
}
Response
🟢 Success 🔴 Error: Subscriptions Limit 🔴 Error: Internal Server Error
Copy {
"data": {
"createSubscription": {
"id": "clugv892y0000vjhga8ugol38", # Created subscription Id
"token": "sub_c028ef8d-b8b9-49c0-b5a9-f7451884b834" # Unique generated token recognized by inabit
}
}
}
Copy {
"errors": [
{
"message": "INTERNAL_SERVER_ERROR",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"createSubscription"
],
"extensions": {
"code": "INTERNAL_SERVER_ERROR",
"message": "There's already an active subscription for this organization. (organization: clu1dzpny0007vjto1gxhl5my)",
"exception": {
"message": "INTERNAL_SERVER_ERROR",
"stacktrace": [
"Error: There's already an active subscription for this organization. (organization: clu1dzpny0007vjto1gxhl5my)",
" at SubscriptionResolver.createSubscription (C:\\Users\\Ori Botan\\Documents\\inabit\\inabit\\server\\src\\subscription\\subscription.resolver.ts:81:13)"
]
}
}
}
],
"data": null
}
Copy {
"errors": [
{
"message": "INTERNAL_SERVER_ERROR",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"createSubscription"
],
"extensions": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Create subscription failed (organization: clu1dzpny0007vjto1gxhl5my)",
"exception": {
"message": "INTERNAL_SERVER_ERROR",
"stacktrace": [
"Error: Create subscription failed (organization: clu1dzpny0007vjto1gxhl5my)",
" at SubscriptionResolver.createSubscription (C:\\Users\\Ori Botan\\Documents\\inabit\\inabit\\server\\src\\subscription\\subscription.resolver.ts:81:13)"
]
}
}
}
],
"data": null
}
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.
Copy query Subscriptions($where: SubscriptionWhereInput) {
subscriptions(where: $where) {
id
token
}
}
Body ( SubscriptionWhereInput object)
ID of the organization in inabit
Delete Subscription
In order to delete a subscription, the following mutation needs to be used:
Copy mutation DeleteSubscription($where: SubscriptionWhereUniqueInput!) {
deleteSubscription(where: $where) {
id
}
}
Body ( SubscriptionWhereUniqueInput object)
Example body:
Copy body:
{
"where": {
"id": "clu5bxctk0003vje4n4pqfdya" # Subscription Id
}
}
Response
🟢 Success 🔴 Error: Internal Server Error
Copy {
"data": {
"deleteSubscription": {
"id": "clugwvbm70007vj4w74gxch3u"
}
}
}
Copy {
"errors": [
{
"message": "INTERNAL_SERVER_ERROR",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"deletesubscription"
],
"extensions": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Delete subscription failed (organization: clu1dzpny0007vjto1gxhl5my)",
"exception": {
"message": "INTERNAL_SERVER_ERROR",
"stacktrace": [
"Error: Delete subscription failed (organization: clu1dzpny0007vjto1gxhl5my)",
" at SubscriptionResolver.deleteSubscription (C:\\Users\\Ori Botan\\Documents\\inabit\\inabit\\server\\src\\subscription\\subscription.resolver.ts:81:13)"
]
}
}
}
],
"data": null
}