Skip to content

Webhooks

Webhooks send HTTP POST requests to external URLs when specific service order events occur. Use them to integrate with external project management tools, CRMs, or notification services.

Go to WP Admin > WB Plugins > Woo Sell Services > Webhooks.

Event Settings key Fires when
Requirement Submitted requirement_submitted Customer submits the requirement form
Delivery Submitted delivery_submitted Vendor submits a final delivery
Delivery Accepted delivery_accepted Customer accepts the delivery
Review Submitted review_submitted Either party submits a review

For each event, enter the full URL where the payload should be sent, then save:

  1. Enter a valid URL in the corresponding field.
  2. Leave a field empty to disable that webhook.
  3. Save.

All URLs are validated and sanitized with esc_url_raw() on save; only valid URLs are stored.

Each webhook sends a JSON payload via HTTP POST. The payload includes:

{
"order_id": "123",
"order_status": "requirement-submitted",
"buyer_id": "789",
"buyer_email": "buyer@example.com",
"buyer_name": "John Doe",
"seller_id": "101",
"products": {
"product_id": "456",
"product_name": "Service Name",
"quantity": "1"
}
}

The order_status field indicates the event type: requirement-submitted, delivery-submitted, delivery-accepted, or review-submitted.

The requirement webhook includes an additional products_requirement field with the submitted questions and answers:

{
"products_requirement": {
"field-0": {
"question": "Describe your project",
"answer": "I need a logo redesign",
"attachment": []
}
}
}

Use a service like webhook.site to test:

  1. Get a test URL.
  2. Paste it into one of the webhook fields.
  3. Trigger the event (submit a requirement, accept a delivery, and so on).
  4. Check the received payload.
  • Payloads are sent with wp_remote_post(), the body encoded via wp_json_encode().
  • The WordPress default timeout applies.
  • No explicit Content-Type: application/json header is set, so the receiving service should accept the default WordPress content type.