Api >

Service Portal REST API

GET retrieves all Customer's available DID destinations
Given I am authenticated as customer K0002
And there are
  • a Phone Extension with id 100 and extension 123 and name Phone Extension
  • a Virtual Fax Extension with id 200 and extension 223 and name Virtual Fax Extension
  • a Group Service with id 300 and extension 323 and service number 313 and name Group Service
  • a Queue Service with id 400 and extension 423 and service number 413 and name Queue Service
  • a Skill Service with id 500 and extension 523 and service number 513 and name Skill Service
  • a IVR Service with id 600 and extension 723 and service number 713 and name IVR Service
  • a Time Control Service with id 700 and extension 823 and service number 813 and name Time Control Service
  • a Conference Service with id 800 and extension 923 and service number 913 and name Conference Service
  • a Direct Dial with id 900 and number *023
  • a Phone Book with id 1000 and number +49 (66) 1234-56 and name Phone Book
  • a Voice Mail Service with Id 1100
When I send /api/customers/K0002/dids/available-destinations
Then I should receive HTTP/1.1 200 OK
with following body:
{
  "href": "/api/customers/K0002/dids/available-destinations?_offset=0&_pagesize=16&_orderBy=extensionNumber&_order=ASC&_orderBy=type&_order=ASC",
  "offset": 0,
  "total": 10,
  "size": 10,
  "links": [],
  "items": [{
    "href": "/api/customers/K0002/targets/VOICEMAILSERVICE",
    "links": [],
    "data": [{
      "name": "name",
      "value": "displayName"
    }, {
      "name": "displayName",
      "value": "displayName"
    }, {
      "name": "extensionNumber",
      "value": "2"
    }, {
      "name": "type",
      "value": "VOICEMAILSERVICE"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "0123"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Phone Extension"
    }, {
      "name": "displayName",
      "value": "Phone Extension"
    }, {
      "name": "extensionNumber",
      "value": "123"
    }, {
      "name": "type",
      "value": "PHONE"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/123/voice-mail",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Phone Extension"
    }, {
      "name": "displayName",
      "value": "Phone Extension"
    }, {
      "name": "extensionNumber",
      "value": "123"
    }, {
      "name": "type",
      "value": "VOICEMAIL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/virtual-fax-extensions/223",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Virtual Fax Extension"
    }, {
      "name": "displayName",
      "value": "Virtual Fax Extension"
    }, {
      "name": "extensionNumber",
      "value": "223"
    }, {
      "name": "type",
      "value": "VIRTUALFAX"
    }, {
      "name": "serviceNumber",
      "value": 0
    }, {
      "name": "serviceCode",
      "value": "*730000"
    }]
  }, {
    "href": "/api/customers/K0002/targets/group-services/313",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Group Service"
    }, {
      "name": "displayName",
      "value": "Group Service"
    }, {
      "name": "extensionNumber",
      "value": "323"
    }, {
      "name": "type",
      "value": "GROUP"
    }, {
      "name": "serviceNumber",
      "value": 313
    }, {
      "name": "serviceCode",
      "value": "*750313"
    }]
  }, {
    "href": "/api/customers/K0002/targets/queue-services/413",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Queue Service"
    }, {
      "name": "displayName",
      "value": "Queue Service"
    }, {
      "name": "extensionNumber",
      "value": "423"
    }, {
      "name": "type",
      "value": "QUEUE"
    }, {
      "name": "serviceNumber",
      "value": 413
    }, {
      "name": "serviceCode",
      "value": "*770413"
    }]
  }, {
    "href": "/api/customers/K0002/targets/skill-services/513",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Skill Service"
    }, {
      "name": "displayName",
      "value": "Skill Service"
    }, {
      "name": "extensionNumber",
      "value": "523"
    }, {
      "name": "type",
      "value": "SKILL"
    }, {
      "name": "serviceNumber",
      "value": 513
    }, {
      "name": "serviceCode",
      "value": "*720513"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/713",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service"
    }, {
      "name": "displayName",
      "value": "IVR Service"
    }, {
      "name": "extensionNumber",
      "value": "723"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 713
    }, {
      "name": "serviceCode",
      "value": "*760713"
    }]
  }, {
    "href": "/api/customers/K0002/targets/time-control-services/813",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Time Control Service"
    }, {
      "name": "displayName",
      "value": "Time Control Service"
    }, {
      "name": "extensionNumber",
      "value": "823"
    }, {
      "name": "type",
      "value": "TIME"
    }, {
      "name": "serviceNumber",
      "value": 813
    }, {
      "name": "serviceCode",
      "value": "*740813"
    }]
  }, {
    "href": "/api/customers/K0002/targets/conference-services/913",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Conference Service"
    }, {
      "name": "displayName",
      "value": "Conference Service"
    }, {
      "name": "extensionNumber",
      "value": "923"
    }, {
      "name": "type",
      "value": "CONFERENCE"
    }, {
      "name": "serviceNumber",
      "value": 913
    }, {
      "name": "serviceCode",
      "value": "*780913"
    }]
  }]
}
GET retrieves filtered Customer's available DID destinations
Filtering is done on fields :
  • name
  • extensionNumber
  • serviceNumber
Given I am authenticated as customer K0002
And there are
  • a Phone Extension with id 100 and extension 123 and name Phone Extension
  • a Virtual Fax Extension with id 200 and extension 223 and name Virtual Fax Extension
  • a Group Service with id 300 and extension 323 and service number 313 and name Group Service
  • a Queue Service with id 400 and extension 423 and service number 413 and name Queue Service
  • a Skill Service with id 500 and extension 523 and service number 513 and name Skill Service
  • a IVR Service with id 600 and extension 723 and service number 713 and name IVR Service
  • a Time Control Service with id 700 and extension 823 and service number 813 and name Time Control Service
  • a Conference Service with id 800 and extension 923 and service number 913 and name Conference Service
  • a Direct Dial with id 900 and number *023
  • a Phone Book with id 1000 and number +49 (66) 1234-56 and name Phone Book
  • a Voice Mail Service with Id 1100
When I send /api/customers/K0002/dids/available-destinations?_q=Extension
Then I should receive HTTP/1.1 200 OK
with following body:
{
  "href": "/api/customers/K0002/dids/available-destinations?_offset=0&_pagesize=16&_q=Extension&_orderBy=extensionNumber&_order=ASC&_orderBy=type&_order=ASC",
  "offset": 0,
  "total": 3,
  "size": 3,
  "links": [],
  "items": [{
    "href": "/api/customers/K0002/targets/phone-extensions/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Phone Extension"
    }, {
      "name": "displayName",
      "value": "Phone Extension"
    }, {
      "name": "extensionNumber",
      "value": "123"
    }, {
      "name": "type",
      "value": "PHONE"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/123/voice-mail",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Phone Extension"
    }, {
      "name": "displayName",
      "value": "Phone Extension"
    }, {
      "name": "extensionNumber",
      "value": "123"
    }, {
      "name": "type",
      "value": "VOICEMAIL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/virtual-fax-extensions/223",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Virtual Fax Extension"
    }, {
      "name": "displayName",
      "value": "Virtual Fax Extension"
    }, {
      "name": "extensionNumber",
      "value": "223"
    }, {
      "name": "type",
      "value": "VIRTUALFAX"
    }, {
      "name": "serviceNumber",
      "value": 0
    }, {
      "name": "serviceCode",
      "value": "*730000"
    }]
  }]
}
Admin does not retrieve destination of another Customer
Given I am authenticated as Admin
And there are
  • a Phone Extension with id 100 and extension 123 and name Phone Extension assigned to Customer K0002
When I send /api/customers/K0003/dids/available-destinations
Then I should receive HTTP/1.1 200 OK
with following body:
{
  "href": "/api/customers/K0003/dids/available-destinations?_offset=0&_pagesize=16&_orderBy=extensionNumber&_order=ASC&_orderBy=type&_order=ASC",
  "offset": 0,
  "total": 0,
  "size": 0,
  "links": [],
  "items": []
}