openapi: 3.2.0 info: title: Webhooks Configuration API version: '1' termsOfService: https://www.8x8.com/terms-and-conditions contact: name: 8x8 Inc url: https://www.8x8.com email: support@8x8.com description: The configuration API allows to manage account-wide and subaccount configurations such as the webhooks used for SMS and Chat-Apps inbound messages, delivery and read receipts and various events. servers: - url: https://sms.8x8.com - url: https://chatapps.8x8.com security: - apiKey: [] tags: - name: Webhooks Configuration API paths: /api/v1/accounts/{accountId}/webhooks: parameters: - name: accountId in: path description: You must replace *{accountId}* with the accountid that you want to use. required: true schema: maxLength: 36 minLength: 32 pattern: ^[0-9A-Fa-f]{8}[-]?(?:[0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}$ type: string get: responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook' examples: response: value: - subAccountId: Onion_Marketing type: DR version: 3 url: http://example.com/dr/marketing httpAuthorization: Basic dXNlcjpwYXNzd29yZA== httpContenttype: text/xml enabled: true - subAccountId: Onion_Marketing type: MO version: 2 url: http://example.com/mo/marketing httpContenttype: application/json enabled: true - subAccountId: '*' type: DR version: 3 url: http://example.com/dr/general httpAuthorization: Basic dXNlcjpwYXNzd29yZA== httpContenttype: text/xml enabled: true - subAccountId: '*' type: MO version: 2 url: http://example.com/mo/general httpContenttype: application/json enabled: true '400': description: Bad request error response content: application/json: schema: title: ErrorResponse required: - code - errorId - timestamp type: object properties: code: type: integer description: Error code message: type: string description: Error description errorId: type: string description: Unique id of error. You can use it as reference when sending enquiries to 8x8 support format: uuid timestamp: type: string description: Data and time of the error occurence format: date-time description: Response in case of error example: code: 1001 message: Provided subAccountId doesn't belongs to your account errorId: 91b106f0-c0da-4aba-a43a-7af9c5893a80 timestamp: '2017-04-19T02:31:19.4297387+00:00' example: code: 1002 message: Invalid MSISDN format (not E.164 international number) errorId: b4478860-b76c-e811-814e-022a35cc1c71 timestamp: '2018-08-04T09:25:40.9235752+00:00' '401': description: Request was not authenticated response content: application/json: schema: $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/400/content/application~1json/schema' example: code: 1200 message: Request was not authenticated properly errorId: db9dced4-3534-4d86-9d18-6b448af0d621 timestamp: '2018-08-02T09:42:38.8988997+00:00' '500': description: Internal server error content: application/json: schema: $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/400/content/application~1json/schema' example: code: 2000 message: Internal server error errorId: db9dced4-3534-4d86-9d18-6b448af0d621 timestamp: '2018-07-02T09:42:38.8988997+00:00' summary: Get all Webhooks for Account operationId: Get-Webhooks security: - apiKey: [] description: Sending a GET request on this endpoint allows to **retrieve a list of all the webhooks or a specific webhook configured for an account**. tags: - Webhooks Configuration API post: responses: '200': description: The webhook was created or updated successfully '400': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/400' '401': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/401' '500': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/500' summary: Create or Replace webhooks operationId: Add-Webhooks requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook' x-examples: application/json: - subAccountId: Onion_Marketing type: DR url: http://example.com/DR/marketing httpAuthorization: Basic dXNlcjpwYXNzd29yZA== enabled: false - subAccountId: '*' type: MO url: http://example.com/mo/general enabled: true security: - apiKey: [] description: "Sending a POST request on this endpoint allows to **add a new webhook for an account or modify the configuration of an existing one** . \n\nWebhooks can be given an account-wide and/or a type-wide scope using the \\* character \n\nFor example: if a webhook is created with subAccount=\\* , this webhook will receive events across all the subaccounts of an account. \nFollowing the same logic: if a webhook is created with type=\\* , this webhook will receive events of any type (delivery receipts, inbound messages, events)" tags: - Webhooks Configuration API delete: responses: '200': description: The webhook was deleted successfully '400': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/400' '401': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/401' '500': $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1webhooks/get/responses/500' summary: Delete webhooks operationId: Delete-Webhooks requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook-delete' description: 'For this request, the subaccount and type (both required) are used to identify which webhook to target and delete. *NB: the * character will only be used for targeting webhooks configured with a global subaccount or global product scope: it does not act as a wild-card to delete all webhooks.*' x-examples: application/json: - subAccountId: Onion_Marketing type: DR - subAccountId: '*' type: MO security: - apiKey: [] description: Sending a DELETE request on this endpoint allows to **remove a configured webhook for an account or a subaccount** . tags: - Webhooks Configuration API components: schemas: webhook-delete: type: object title: Webhook Delete properties: subAccountId: type: string description: '- Used to target which webhook to deactivate based on the subaccount it is configured for. - Use the `subaccountid` of the webhook to target a webhook set for a specific subaccount. - Use `*` to target a webhook with a subAccount-wide scope.' example: Onion_Marketing type: $ref: '#/components/schemas/webhook-type' required: - subAccountId - type webhook: type: object title: Webhook properties: subAccountId: type: string description: '- Sets the subaccount scope of the webhook. - Use `*` to receive events across all subAccounts. - Use the `subAccountId` to receive events for a specific subaccount.' example: Onion_Marketing type: $ref: '#/components/schemas/webhook-type' url: type: string format: uri example: http://example.com description: The `url` to use for the webhook (8x8 platform will send events to this URL). httpAuthorization: type: string description: "- If your webhook requires an authorization, use this parameter to specify it.\n- If specified, the HTTP Authorization header will be passed to your webhook as is.\n- Examples:\n\t- **Basic Authorization** example\n\t\t- for `user:password`, you must encode the string `user:password` in base64 (encoded: dXNlcjpwYXNzd29yZA==)\n \t\t- the parameter value should then be set to `Basic dXNlcjpwYXNzd29yZA==`\n\t- **OAuth Authorization** example\n\t\t- for ApiKey 9QQhlsEb8VY:\n\t\t- the parameter value should be set to `Bearer 9QQhlsEb8VY`" example: Bearer 9QQhlsEb8VY enabled: type: boolean example: false description: Use this flag to enable or disable a Webhook. default: true required: - subAccountId - type - url webhook-type: type: string title: Webhook Type enum: - DR - MO - MSG - EV description: 'Specifies the type of events received on the webhook. The possible values are: * `*` : events of all types * `DR`: delivery receipts only * `MO`: SMS inbound messages only * `MSG`: SMS and ChatApps inbound messages only * `EV`: Events only (Whatsapp group created, user joined WA group, user left WA group)' securitySchemes: apiKey: type: http scheme: bearer description: '* 8x8 SMS API accepts an **ApiKey Bearer Token** authentication method. * You can generate tokens from your customer portal [https://connect.8x8.com/](https://connect.8x8.com/) * You need to include the following header in your requests: `Authorization: Bearer {apiKey}` > **Note**: Replace the `{apiKey}` placeholder with the key generated from the customer portal. --- If you haven''t created your account yet, please go to 8x8 website [https://connect.8x8.com](https://connect.8x8.com) to sign up. ' x-si-base: ./schemas/configuration.oas3.yml x-github-repo: 8x8/wavecell_public_docs x-github-sha: 594117e93f52b04c868bc1bac8be455b965a8afb x-readme: explorer-enabled: true proxy-enabled: true