openapi: 3.2.0
info:
title: Vibes Platform Callback API
version: 1.0.0
servers:
- url: https://public-api.vibescm.com
description: North America
- url: https://public-api.eu.vibes.com/
description: EMEA
security:
- basicAuth: []
tags:
- name: Callback API
paths:
/companies/{company_key}/config/callbacks/:
post:
tags:
- Callback API
summary: Register for a new callback type
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/callbackRequest-Ack'
- $ref: '#/components/schemas/callbackRequest-Event'
- $ref: '#/components/schemas/callbackRequest-Person'
- $ref: '#/components/schemas/callbackRequest-Push'
- $ref: '#/components/schemas/callbackRequest-Sub'
- $ref: '#/components/schemas/callbackRequest-SubList'
- $ref: '#/components/schemas/callbackRequest-Unmatched'
- $ref: '#/components/schemas/callbackRequest-Wallet'
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
description:
Important: Please note that the "Try It" feature to the right will send an actual API call to our system, which may result in your company being registered for a new callback.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/callbackResponse'
'201':
description: Callback has been successfully registered.
get:
tags:
- Callback API
summary: List registered callbacks
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: company_key
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/callbacksResponse'
/companies/{company_key}/config/callbacks/{callback_id}:
get:
tags:
- Callback API
summary: Get a callback
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: company_key
in: path
schema:
type: string
required: true
- name: callback_id
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/callbackResponse'
'404':
description: The `callback_id` is not recognized.
put:
tags:
- Callback API
summary: Update a callback
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/callbackRequest-Ack'
- $ref: '#/components/schemas/callbackRequest-Event'
- $ref: '#/components/schemas/callbackRequest-Person'
- $ref: '#/components/schemas/callbackRequest-Push'
- $ref: '#/components/schemas/callbackRequest-Sub'
- $ref: '#/components/schemas/callbackRequest-SubList'
- $ref: '#/components/schemas/callbackRequest-Unmatched'
- $ref: '#/components/schemas/callbackRequest-Wallet'
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
description: Important: Please note that the "Try It" feature to the right will send an actual API call to our system, which may result in your company being registered for a new callback.
- name: callback_id
in: path
schema:
type: string
required: true
description: The id for the callback you are updating.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/callbackResponse'
'201':
description: Callback has been successfully updated.
delete:
tags:
- Callback API
summary: Cancel a callback
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
- name: callback_id
in: path
schema:
type: string
required: true
description: Important: Please note that the "Try It" feature to the right will send an actual API call to our system, which may result in a callback being cancelled.
responses:
'200':
description: Callback was successfully cancelled. Your endpoint will no longer receive this callback.
content:
application/json:
schema:
$ref: '#/components/schemas/callbackResponse'
'404':
description: The `callback_id` cannot be found.
/companies/{company_key}/config/callback_events/test:
post:
tags:
- Callback API
summary: Create a test callback event
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/testcallbackRequest-Ack'
- $ref: '#/components/schemas/testcallbackRequest-Event'
- $ref: '#/components/schemas/testcallbackRequest-Person'
- $ref: '#/components/schemas/testcallbackRequest-Push'
- $ref: '#/components/schemas/testcallbackRequest-Sub'
- $ref: '#/components/schemas/testcallbackRequest-SubList'
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
description: Important: Please note that the "Try It" feature to the right will send an actual API call to our system, which may result in your company being registered for a new callback.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/testCallbackResponse'
'201':
description: The callback was queued for send.
'404':
description: An active callback does not exist.
components:
schemas:
testCallbackResponse:
type: object
properties:
message:
type: string
description: confirmation of test callback type requested.
event_id:
type: string
description: System defined event_id for the callback.
callbackResponse:
type: object
properties:
callback_id:
type: string
description: Vibes unique identifier for each callback record.
callback_type:
type: string
description: Callback type to trigger this callback.
ack_participant_changed:
type: object
description: Present for Acquisition Changed callback.
properties:
campaign_id:
type: string
description: Vibes unique identifier for an acquisition campaign.
ack_participant_added:
type: object
description: Present for Acquisition Added callback.
properties:
campaign_id:
type: string
description: Vibes unique identifier for an acquisition campaign.
subscription_added:
type: object
description: Present for Subscription Added callback.
properties:
list_id:
type: string
description: Vibes unique identifier for a subscription list.
subscription_removed:
type: object
description: Present for Subscription Removed callback.
properties:
list_id:
type: string
description: Vibes unique identifier for a subscription list.
unmatched_message_received:
type: object
description: Present for Unmatched Message callback.
properties:
source_code:
type: string
description: The short code, long code, or alpha code you want to receive unmatched message events for.
country_code:
type: string
description: The country code for the source code you want to receive unmatched message events for.
wallet_item_install:
type: object
description: Present for Wallet Item Install callback.
properties:
campaign_token:
type: string
description: The campaign token for the wallet campaign.
wallet_item_remove:
type: object
description: Present for Wallet Item Removed callback.
properties:
campaign_token:
type: string
description: The campaign token for the wallet campaign.
device_added:
type: object
description: Present for Push Device Added callback.
properties:
app_id:
type: string
description: Your push application id.
device_removed:
type: object
description: Present for Push Device Removed callback.
properties:
app_id:
type: string
description: Your push application id.
device_updated:
type: object
description: Present for Push Device Updated callback.
properties:
app_id:
type: string
description: Your push application id.
event_processed:
type: object
description: Present for event-triggered callback if you only want to recieve callbacks for a single event.
properties:
event_type:
type: string
callbacks_to_send:
type: string
description: Choose which callbacks you'd like to receive. Default is all.
enum:
- all
- only_failures
- routing
- carrier_dlr
- handset_dlr
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
start_date:
type: string
description: The date the campaign is starting in ISO-8601 format.
end_date:
type: string
description: The date the Campaign is ending in ISO-8601 format.
url:
type: string
description: Unique resource URL for the callback.
created_date:
type: string
description: The date the campaign was created in ISO-8601 format.
updated_date:
type: string
description: The date the campaign was last updated in ISO-8601 format.
testcallbackRequest-Sub:
type: object
title: Subscription Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- subscription_added
- subscription_removed
subscription:
type: object
properties:
person:
type: object
properties:
id:
type: string
description: person_id for the subscriber.
subscription_list:
type: object
properties:
id:
type: string
description: subscription_list_id for list for which a subscriber is being added or removed.
required:
- id
required:
- subscription_list
required:
- callback_type
testcallbackRequest-Event:
type: object
title: Event-Triggered Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- event_processed
event_processed:
type: object
properties:
event_id:
type: string
description: event_id for your test event.
event_data:
type: object
description: Enter any event_data that will be passed along in your test callback.
required:
- callback_type
testcallbackRequest-Person:
type: object
title: Person Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- person_added
- person_updated
person:
type: object
properties:
person_id:
type: string
description: person_id for person being added or updated.
external_person_id:
type: string
description: external_person_id for person being added or updated.
mobile:
type: object
properties:
mdn:
type: string
description: Mobile phone number of person being added or updated.
carrier_code:
type: string
description: Carrier code for person's mobile phone carrier.
custom_fields:
type: object
description: Any custom fields being added or updated for the person.
required:
- callback_type
testcallbackRequest-SubList:
type: object
title: Subscription List Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- subscription_list_added
- subscription_list_updated
subscription_list:
type: object
properties:
id:
type: string
description: subscription_list_id for the list that is being added or updated.
name:
type: string
description: Name of subscription list being added or updated.
required:
- callback_type
testcallbackRequest-Ack:
type: object
title: Acquisition Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- ack_participant_added
- ack_participant_changed
- company_participant_added
- company_participant_changed
participant:
type: object
properties:
id:
type: string
description: person_id of person who is being added or removed from this acquisition campaign.
mobile_phone:
type: object
properties:
mdn:
type: string
description: Mobile phone number for person who is being added or removed from this acquisition campaign.
acquisition_campaign:
type: object
properties:
api_key:
type: string
description: This is the acquisition_id of the campaign a person is being added to. If using ack_participant_added or ack_participant_changed, api_key is required.
description:
type: string
description: The value here will be returned in the callback. This is optional.
keyword:
type: string
description: The value here will be returned in the callback. This is optional.
subscription_list:
type: object
properties:
id:
type: string
description: The subscription_list_id of the list the participant is being added to.
required:
- callback_type
callbackRequest-SubList:
type: object
title: Subscription List Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- subscription_list_added
- subscription_list_updated
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
callbackRequest-Wallet:
type: object
title: Wallet Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- wallet_item_install
- wallet_item_remove
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
wallet_item_install:
type: object
description: Required for Wallet Item Install callback.
properties:
campaign_token:
type: string
description: The campaign token for the wallet campaign.
wallet_item_remove:
type: object
description: Required for Wallet Item Remove callback.
properties:
campaign_token:
type: string
description: The campaign token for the wallet campaign.
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
callbackRequest-Unmatched:
type: object
title: Unmatched Message Callback
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- unmatched_message_received
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
unmatched_message_received:
type: object
description: Required for Unmatched Message callback.
properties:
source_code:
type: string
description: The short code, long code, or alpha code you want to receive unmatched message events for.
country_code:
type: string
description: The country code for the source code you want to receive unmatched message events for.
required:
- source_code
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
- unmatched_message_received
callbacksResponse:
type: array
items:
$ref: '#/components/schemas/callbackResponse'
callbackRequest-Person:
type: object
title: Person Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- person_added
- person_updated
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
callbackRequest-Event:
type: object
title: Event-Triggered Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- event_processed
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
event_processed:
type: object
properties:
event_type:
type: string
description: The name of the event that you would like to receive callbacks for.
callbacks_to_send:
type: string
description: Choose which callbacks you'd like to receive. Default is all.
enum:
- all
- only_failures
- routing
- carrier_dlr
- handset_dlr
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- event_processed
- callback_type
- destination
callbackRequest-Push:
type: object
title: Push Device Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- device_added
- device_removed
- device_updated
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
device_added:
type: object
description: Required for Push Device Added callback.
properties:
app_id:
type: string
description: Your push application id.
device_removed:
type: object
description: Required for Push Device Removed callback.
properties:
app_id:
type: string
description: Your push application id.
device_updated:
type: object
description: Required for Push Device Updated callback.
properties:
app_id:
type: string
description: Your push application id.
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
testcallbackRequest-Push:
type: object
title: Push Device Callbacks
properties:
callback_type:
type: string
description: The type of callback you'd like to receive the test callback for.
enum:
- device_added
- device_removed
- device_updated
person:
type: object
properties:
person_id:
type: string
description: person_id for the person associated with the push device being added/updated/removed.
external_person_id:
type: string
description: external_person_id for the person associated with the push device being added/updated/removed.
push_device:
type: object
properties:
app_id:
type: string
description: Your app id.
vibes_device_id:
type: string
push_token:
type: string
device_os:
type: string
required:
- callback_type
callbackRequest-Sub:
type: object
title: Subscription Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- subscription_added
- subscription_removed
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
subscription_added:
type: object
description: Required for Subscription Added callback.
properties:
list_id:
type: string
description: Vibes unique identifier for a subscription list.
subscription_removed:
type: object
description: Required for Subscription Removed callback.
properties:
list_id:
type: string
description: Vibes unique identifier for a subscription list.
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
callbackRequest-Ack:
type: object
title: Acquisition Callbacks
properties:
callback_type:
type: string
description: The type of callback to register.
enum:
- ack_participant_added
- ack_participant_changed
- company_participant_added
- company_participant_changed
destination:
type: object
properties:
url:
type: string
description: External URL to submit the callback data.
method:
type: string
description: Method to submit the data to the destination URL.
enum:
- POST
- PUT
default: POST
content_type:
type: string
description: Content type to set when submitting the data to the destination URL.
enum:
- application/json
- text/json
default: application/json
required:
- url
ack_participant_changed:
type: object
description: Required for Acquisition Changed callback.
properties:
campaign_id:
type: string
description: Vibes unique identifier for an acquisition campaign.
ack_participant_added:
type: object
description: Required for Acquisition Added callback.
properties:
campaign_id:
type: string
description: Vibes unique identifier for an acquisition campaign.
start_date:
type: string
description: Date you’d like to start receiving this callback in ISO-8601 format. Leave blank to start immediately.
example: yyyy-mm-dd
end_date:
type: string
description: Date you’d like to stop receiving this callback in ISO-8601 format. Leave blank for no end date.
example: yyyy-mm-dd
required:
- callback_type
- destination
securitySchemes:
basicAuth:
type: http
scheme: basic