Webhooks
The Webhooks module in the EShopBox SDK allows you to manage webhook subscriptions for workspace events. You can list, create, update, and retrieve webhooks programmatically.
Example: Setup Webhook Using EShopBox SDK
"""
Example: Setup webhook using EShopBox SDK
"""
import os
from eshopbox.client import EShopBoxSDK
from dotenv import load_dotenv
load_dotenv()
def get_all_webhooks(sdk):
print("Getting all webhooks...")
response = sdk.webhooks.list()
print("Webhooks retrieved successfully!")
print(response)
def get_webhooks(sdk, id):
print("Getting specific webhooks...")
response = sdk.webhooks.get(id)
print("Webhooks retrieved successfully!")
print(response)
def create_webhooks(sdk):
print("Creating webhook...")
webhook_data = {
"resource": "user_invitation",
"eventType": "POST",
"eventSubType": "created",
"version": "v1",
"externalChannelID": os.getenv('ESHOPBOX_EXTERNAL_CHANNEL_ID', ''),
"webhookUrl": "https://api-dev.kashwork.com/api/shipping/eshopbox/webhook",
"webhookMethod": "POST",
"accountSlug": os.getenv('ESHOPBOX_WORKSPACE', '')
}
response = sdk.webhooks.create(webhook_data)
print("Webhook created successfully!")
print(response)
def update_webhooks(sdk, id):
print("Updating webhook...")
webhook_data = {
"id": id,
"resource": "channel_inventory",
"eventType": "POST",
"eventSubType": "created",
"version": "v1",
"externalChannelID": os.getenv('ESHOPBOX_EXTERNAL_CHANNEL_ID', ''),
"webhookUrl": "https://api-dev.kashwork.com/api/shipping/eshopbox/webhook",
"webhookMethod": "POST",
"accountSlug": os.getenv('ESHOPBOX_WORKSPACE', '')
}
response = sdk.webhooks.update(webhook_data)
print("Webhook updated successfully!")
print(response)
def main():
sdk = EShopBoxSDK(
workspace=os.getenv('ESHOPBOX_WORKSPACE', ''),
client_id=os.getenv('ESHOPBOX_CLIENT_ID', ''),
client_secret=os.getenv('ESHOPBOX_SECRET_ID', ''),
refresh_token=os.getenv('ESHOPBOX_REFRESH_TOKEN', '')
)
update_webhooks(sdk, '105322')
if __name__ == "__main__":
main()
Webhook APIs
List All Webhooks
sdk.webhooks.list()
Returns a list of all webhooks for the workspace.
Get a Specific Webhook
sdk.webhooks.get(webhook_id)
Retrieves the details of a specific webhook using its ID.
Example:
sdk.webhooks.get('105322')
Create a Webhook
sdk.webhooks.create(webhook_data)
Creates a new webhook subscription.
Required Fields in `webhook_data`:
Update a Webhook
sdk.webhooks.update(webhook_data)
Updates an existing webhook by ID.
Fields for update: Same as create, but include id of the webhook to update.
Notes
Make sure the webhook URL is publicly accessible and can accept POST requests.
Use externalChannelID if the webhook is specific to a channel.
Webhook creation and update require valid workspace credentials stored in environment variables.
Event types and resources must match EShopBox webhook specifications.