Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
Code Block
languagebash
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

...

see API Authorization

...

<access_token>

...

Yes

...

see API Authorization 

...

<add_webhook_object>

...

Yes

...

see AddWebhook Object (Use the default or GraphQL-based structure)

Response

JSON
Code Block
languagejs
{
    "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:

  1. List the existing webhook configurations

  2. Make the desired adjustments to the AddWebhook Object

  3. Create a new webhook configuration using the adjusted AddWebhook Object

  4. Remove the previous webhook configuration

Remove Webhook Configuration

Delete Request

Curl
Code Block
languagebash
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

see API Authorization 

Response

Curl
Code Block
languagebash
204 No Content
The server successfully processed the request, but is not returning any content

...

List Webhook Configurations

Request

Curl
Code Block
languagebash
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

see API Authorization

<access_token>

Yes

see API Authorization

Response

Response example 1

JSON
Code Block
languagejs
{
    "_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
Code Block
languagejs
{
  "_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
Anchor
get-team
get-team

Request

Curl
Code Block
languagebash
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

see API Authorization

<api_key>

Yes

see API Authorization

Response

JSON
Code Block
languagejs
{
    "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"
        }
    }
}

...