Common information
Webhooks configurations will be attached to an entire organization with all its events. The payload of event and order webhooks will contain the event_id so you can decide which webhooks to process.
Create Webhook Configuration
Request
Curl
curl -X POST https://rest.doo.net/v1/team/<team_id>/webhooks \ -H 'Content-Type: application/json' \ -H 'x-api-key: <api_key>' \ -H 'Authorization: Bearer <access_token>' \ -d '<add_webhook_object>'
Parameters
Parameter | Required | Description |
---|---|---|
<team_id> | Yes | Team ID for which you want to configure the webhooks, see Get all your organizations and teams |
<api_key> | Yes | |
<access_token> | Yes | |
<add_webhook_object> | Yes | see AddWebhook Object (Use the default or GraphQL-based structure) |
Response
JSON
{ "response_status": 200, "developer_message": "Success", "user_message": "Success", "data": "0f5566bb-d35b-11e7-bde8-0206116776d2", // created webhook group id "_links": { "self": { "href": "https://rest.doo.net/v1/team/<team_id>/webhooks" } } }
Update Webhook Configuration
There is no dedicated request to update an existing webhook configuration, e.g. if you want to change the triggers or the payload.
Instead, do the following:
List the existing webhook configurations
Make the desired adjustments to the AddWebhook Object
Create a new webhook configuration using the adjusted AddWebhook Object
Remove the previous webhook configuration
Remove Webhook Configuration
Delete Request
Curl
curl -X DELETE https://rest.doo.net/v1/webhooks/<webhook_group_id> \ -H 'Content-Type: application/json' \ -H 'x-api-key: <api_key>'
Parameters
Parameter | Required | Description |
---|---|---|
<webhook_group_id> | Yes | ID for the webhook configuration, which you received in the response when generating it |
<api_key> | Yes |
Response
Curl
204 No Content The server successfully processed the request, but is not returning any content
Steps to follow when deleting webhooks:
Pick the configuration you want to delete and execute Delete Request
Double-check the deletion by listing the webhook configurations
We do not give a confirmation on whether the webhook configuration has been deleted. This prevents brute-force attacks to know whether they have been successful.
List Webhook Configurations
Request
Curl
curl -X GET https://rest.doo.net/v1/team/<team_id>/webhooks \ -H 'Content-Type: application/json' \ -H 'x-api-key: <api_key>' \ -H 'Authorization: Bearer <access_token>'
Parameters
Parameter | Required | Description |
---|---|---|
<team_id> | Yes | Team ID for which you want to retrieve the webhook configurations, see Get all your organizations and teams |
<api_key> | Yes | |
<access_token> | Yes |
Response
Response example 1
JSON
{ "_links": { "self": { "href": "https://rest.doo.net/team/<team_id>/webhooks?page=1" }, "first": { "href": "https://rest.doo.net/team/<team_id>/webhooks" }, "last": { "href": "https://rest.doo.net/team/<team_id>/webhooks?page=1" } }, "_embedded": { "webhooks": [ { "id": "38cc7e8d-d107-11e7-bde8-0206116776d1", "name": "My Test Webhook", "description": "Webhook for testing all the hook types", "hooks": [ { "type": "event_created", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "event_removed", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "event_updated", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "order_created", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "order_removed", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "order_updated", "method": "POST", "endpoint": "https://requestb.in/123" }, { "type": "order_cancelled", "method": "POST", "endpoint": "https://requestb.in/123" } ], "authentication": { "grant_type": "client_credentials", "endpoint": "https://requestb.in/123", "credentials": { "client_id": "doo", "client_secret": "super-strong-secret" }, "header_format": "Authorization", "header_value_format": "Bearer %ACCESS_TOKEN%" }, "_links": { "self": { "href": "https://rest.doo.net/v1/webhooks/38cc7e8d-d107-11e7-bde8-0206116776d1" } } } ] }, "page_count": 1, "page_size": 25, "total_items": 5, "page": 1 }
Response example 2
JSON
{ "_links": { "self": { "href": "https://api.staging1.doo.net/v1/team/<team_id>/webhooks?page=1" }, "first": { "href": "https://api.staging1.doo.net/v1/team/<team_id>/webhooks" }, "last": { "href": "https://api.staging1.doo.net/v1/team/<team_id>/webhooks?page=1" } }, "_embedded": { "webhooks": [ { "id": "04266663-6684-a883-66b2-cfa3e7572d33", "name": "My GraphQL Webhook", "description": "Webhook for testing hook types with GraphQL body", "hooks": [ { "type": "event_created_92bd9a53281981160c955e339304b3e5", "method": "POST", "endpoint": "https://requestb.in/123", "origin": { "method": "POST", "endpoint": "https://gql.doo.net", "body": "{\"operationName\":\"EventCreatedShort\",\"variables\":{\"id\":\"%EVENT_ID%\"},\"query\":\"query EventCreatedShort($id: ID!) {\\n event(id: $id) {\\n title\\n }\\n}\\n\"}" } }, { "type": "event_updated_2104384af7e8434f0058ed57163b6f33", "method": "POST", "endpoint": "https://requestb.in/123", "origin": { "method": "POST", "endpoint": "https://gql.doo.net", "body": "{\"operationName\":\"EventUpdatedShort\",\"variables\":{\"id\":\"%EVENT_ID%\"},\"query\":\"query EventUpdatedShort($id: ID!) {\\n event(id: $id) {\\n title\\n }\\n}\\n\"}" } } ], "authentication": { "grant_type": "client_credentials", "endpoint": "https://requestb.in/123", "credentials": { "client_id": "doo", "client_secret": "super-strong-secret" }, "header_format": "Authorization", "header_value_format": "Bearer %ACCESS_TOKEN%" }, "_links": { "self": { "href": "https://api.staging1.doo.net/v1/team/<team_id>/webhooks" } } } ] }, "page_count": 1, "page_size": 7, "total_items": 1, "page": 1 }
Get all your organizations and teams
Request
Curl
curl -X Get https://rest.doo.net/v1/organizers/current/organizations \ -H 'Content-Type: application/json' \ -H 'x-api-key: <api_key>' \ -H 'Authorization: Bearer <access_token>'
Parameters
Parameter | Required | Description |
---|---|---|
<access_token> | Yes | |
<api_key> | Yes |
Response
JSON
{ "organizations": [ { "id": 1, "name": "Organization 1", "canEdit": true, "teams": [ { "id": 1, "name": null, "role": "team_admin" } ] }, { "id": 2, "name": "Organization 2", "canEdit": true, "teams": [ { "id": 2, "name": null, "role": "team_admin" } ] } ], "active_team": { "permissions": [ "Booking:View", "Booking:ViewDeleted", "Event:ViewSettings" ], "id": 1, "name": null, "organization_id": 1, "user_id": 123, "role": "team_admin", "is_all_events_team": true, "show_info_box": null, "user_count": null, "live_events_count": null }, "_links": { "self": { "href": "https://rest.doo.net/v1/organizers/current/organizations" } } }