openapi: 3.0.1
info:
title: connect Address Management CDR API
description: "The Cloud Connect Service is a comprehensive multi-cloud one-stop-shop solution that provides a unique combination of layer 2 transport, which is provided by BICS, and dedicated connectivity (hosted connection) directly to the Cloud Service Provider (CSP) infrastructure. This service bypasses the public internet, ensuring reliable, secure, and fast connectivity.\n\nWithin each Cloud Connect Service, the Ethernet Virtual Private Line (EVPL) is provisioned on BICS network defined by MEF 6.2. The EVPL is a secure, point-to-point Ethernet service that provides a high-performance, low-latency connection between your on-premises infrastructure and the CSP infrastructure. \n\nThank you for considering BICS Cloud Connect Service and using our API. If you have any questions or concerns, please contact BICS customer support."
version: v1
servers:
- url: https://api.bics.com/connect/v1
tags:
- name: CDR
description: The following methods allows you to request your Call Detail Records (CDRs), request the status of your requests and download your CDRs. The CDRs are available for both Inbound and Outbound calls terminated/originated to/from BICS numbers as from the 1st of January 2020.
paths:
/cdrs/{id}/download/{format}:
summary: /cdrs/{id}/download/{format}
parameters: []
get:
tags:
- CDR
summary: Download CDR Request
description: This method allows you download CDR requests.
operationId: Download CDR Request
parameters:
- name: id
in: path
description: CDR request ID
required: true
allowEmptyValue: false
style: simple
explode: false
schema:
type: string
description: CDR request ID
readOnly: false
example: '123'
- name: format
in: path
description: allowed values are
- "json" - default value if not specified in the request
- "csv" - values are separated by semi-colon
required: true
allowEmptyValue: false
style: simple
explode: false
schema:
type: string
description: allowed values are - "json" - default value if not specified in the request
- "csv" - values are separated by semi-colon
readOnly: false
example: csv
responses:
'200':
description: Download CDRS (application/octet-stream)
headers: {}
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/downloadCdrResponse'
example: null
example: "[\n {\n 'product': 'IBN',\n 'customerPoP': 'POP EU',\n 'direction': 'Inbound',\n 'originCountry': 'BEL',\n 'destinationCountry': 'FRA',\n 'accessNumber': '3315467894',\n 'customerRoutingNumber': '1233311551556',\n 'aNumber': '3221236598',\n 'bNumber': '3311551556',\n 'accessType': 'FixMobPay',\n 'callTimestamp': '2019-07-11 15:16:49',\n 'durationMinutes': 24.267,\n 'durationSeconds': 1456,\n 'releaseCauseCode': 16,\n 'releaseCauseDescription': 'normal call clearing',\n 'ibisCode': '',\n 'profile': 'Profile A',\n 'sipCallId': '',\n 'calendar': 'SINT',\n 'tde': 'STD'\n },\n {\n …\n }\n]\n"
application/octet-stream:
schema:
type: array
items:
$ref: '#/components/schemas/downloadCdrResponse'
example: null
example: "[\n {\n 'product': 'IBN',\n 'customerPoP': 'POP EU',\n 'direction': 'Inbound',\n 'originCountry': 'BEL',\n 'destinationCountry': 'FRA',\n 'accessNumber': '3315467894',\n 'customerRoutingNumber': '1233311551556',\n 'aNumber': '3221236598',\n 'bNumber': '3311551556',\n 'accessType': 'FixMobPay',\n 'callTimestamp': '2019-07-11 15:16:49',\n 'durationMinutes': 24.267,\n 'durationSeconds': 1456,\n 'releaseCauseCode': 16,\n 'releaseCauseDescription': 'normal call clearing',\n 'ibisCode': '',\n 'profile': 'Profile A',\n 'sipCallId': '',\n 'calendar': 'SINT',\n 'tde': 'STD'\n },\n {\n …\n }\n]\n"
links: {}
'400':
description: Bad request, An issue occurred while processing the input parameters.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples: {}
example: null
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
examples: {}
example: null
links: {}
'404':
description: Not found, verify url and/or id used in the request.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples: {}
example: null
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
examples: {}
example: null
links: {}
/cdrs/{id}/status:
summary: /cdrs/{id}/status
parameters: []
get:
tags:
- CDR
summary: Get status of CDR Request
description: This method allows you to request the status of your CDR request.
operationId: Get status of CDR Request
parameters:
- name: id
in: path
description: CDR request ID
required: true
allowEmptyValue: false
style: simple
explode: false
schema:
type: string
description: CDR request ID
readOnly: false
example: '123'
responses:
'200':
description: Successful operation.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/cdrRequestStatusResponse'
example: "{\n 'status': 'Executing'\n}\n"
links: {}
'404':
description: Not found, verify url and/or id used in the request.
headers: {}
content: {}
links: {}
/cdrs/availableDates:
summary: /cdrs/availableDates
parameters: []
get:
tags:
- CDR
summary: Get available CDR dates
description: This method allows you to verify upfront if CDR data is available for a specific date range.
operationId: Get available CDR dates
parameters:
- name: fromDate
in: query
description: Filter by from date. Not earlier than today – 1 year. The format of the date is YYYY-MM-DD.
required: true
allowEmptyValue: false
style: form
explode: true
schema:
type: string
description: Filter by from date. Not earlier than today – 1 year. The format of the date is YYYY-MM-DD.
readOnly: false
example: '2022-08-01'
- name: toDate
in: query
description: Filter by to date. Not earlier than today – 1 year. The format of the date is YYYY-MM-DD.
required: true
allowEmptyValue: false
style: form
explode: true
schema:
type: string
description: Filter by to date. Not earlier than today – 1 year. The format of the date is YYYY-MM-DD.
readOnly: false
example: '2022-08-03'
responses:
'200':
description: List of available CDR dates.
headers: {}
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/availableDate'
example: null
example: "[\n {\n 'date': '2022-08-01',\n 'status': 0\n },\n {\n 'date': '2022-08-02',\n 'status': 1\n },\n {\n 'date': '2022-08-03',\n 'status': 2\n },\n {\n ...\n }\n]\n"
links: {}
'400':
description: Bad request, An issue occurred while processing the input parameters.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/error'
example: "{\n 'code' : 'E088',\n 'description' : 'Date range not valid.'\n 'timestamp' : '2022-08-15T15:02:35.737+02:00'\n}\n"
links: {}
/cdrs:
summary: /cdrs
parameters: []
post:
tags:
- CDR
summary: Request CDRs
operationId: Request CDRs
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/createCdrRequest'
examples: {}
example: null
responses:
'200':
description: Successful operation.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/createCdrResponse'
example: "{\n 'id': 105148,\n 'status': 'Requested'\n}\n"
links: {}
'400':
description: Bad request, An issue occurred while processing the input parameters.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/error'
example: "{\n 'code' : 'E020',\n 'description' : 'Please fill out all the mandatory attributes.'\n 'timestamp' : '2019-07-11T15:16:49.53+02:00'\n}\n"
links: {}
components:
schemas:
createCdrResponse:
type: object
properties:
id:
type: integer
description: unique identifier of your request.
format: int64
example: null
status:
type: string
description: Status of your request. Possible values are - "Requested" - your request is accepted and wait processing
- "Executing" - your request is being executed
- "Done" - your request is complete, use method CDR download to get the result
- "Error" - there was an error processing your request
- "Expired" - your request is expired, the file is not available anymore
- "No results" - your request is complete, no CDRs found
example: null
example: null
cdrRequestStatusResponse:
type: object
properties:
status:
type: string
description: Status of your request. Possible values are - "Requested" - your request is accepted and wait processing
- "Executing" - your request is being executed
- "Done" - your request is complete, use method CDR download to get the result
- "Error" - there was an error processing your request
- "Expired" - your request is expired, the file is not available anymore
- "No results" - your request is complete, no CDRs found
example: null
example: null
downloadCdrResponse:
type: object
properties:
calendar:
type: string
description: Pricing Calendar Reference. See Get Calendar and Get Calendar by Product.
example: null
releaseCauseCode:
type: integer
description: code why the call was closed (see also APPENDIX A – Release Cause codes)
format: int32
example: null
product:
type: string
description: Product code, IBN for cloud number, ITFS for International Freephone Number, "UIFN" for Universal International Freephone Numbers, "SCS" for Shared Cost Services
example: null
sipCallId:
type: string
description: Global unique identifier for the call.
example: null
durationSeconds:
type: integer
description: Duration in seconds of the call
format: int32
example: null
customerRoutingNumber:
type: string
description: Routing number
example: null
profile:
type: string
description: Tariff differentiation within a country for Inbound Traffic. It intervenes in the billing.
example: null
bNumber:
type: string
description: Destination number in E164 format
example: null
destinationCountry:
type: string
description: Destination country in ISO 3166-1 alpha-3 format
example: null
ibisCode:
type: string
description: Tariff differentiation within a country for Outbound Traffic. It intervenes in the billing.
example: null
releaseCauseDescription:
type: string
description: Description of the close of call code
example: null
aNumber:
type: string
description: Origin number in E164 format
example: null
accessType:
type: string
description: Access type of the calling party. The possible values are - "Fix" - Fix line
- "Mob" - Mobile line
- "Pay" - Payphone line
- "fixMob" - Fix and Mobile lines
- "fixPay" - Fix and Payphone lines
- "mobPay" - Mobile and Payphone lines
- "fixMobPay" - Fix, Mobile and Payphone lines
example: null
durationMinutes:
type: number
description: Duration in minutes of the call
format: decimal
example: null
customerPoP:
type: string
description: Point of Presence (PoP) refers to your access point to which the traffic is routed
example: null
tde:
type: string
description: Time division element that differentiates the price based on the day and time of the call. - STD - Standard
- P - Peak
- OP - Off Peak
- OOP - Off Off Peak
- WED - Weekend
example: null
accessNumber:
type: string
description: Provisioned number
example: null
callTimestamp:
type: string
description: Start date and time of the call in format "yyyy-mm-dd hh:mm:ss" in CET (Central European Time)
example: null
originCountry:
type: string
description: Origin country in ISO 3166-1 alpha-3 format
example: null
direction:
type: string
description: possible values are - IN for inbound traffic
- OUT for outbound traffic. Not available for UIFN and SCS products
example: null
example: null
availableDate:
type: object
properties:
date:
type: string
description: Available date in format YYYY-MM-DD
format: date
example: Wed Sep 14 00:00:00 GMT 2022
status:
type: integer
description: Available date status. Possible values are - `0` - All cdrs for this date are available
- `1` - Cdr data is partially available
- `2` - No cdr data available
format: int32
example: 1
example: null
error:
type: object
properties:
code:
type: string
description: Error code, the complete description can be found in API documentation
example: EXXX
description:
type: string
description: Description of the error, the complete description can be found in API documentation
example: Description of the error that occurred.
timestamp:
type: string
description: timestamp of error in UTC format
format: date-time
example: null
example: null
createCdrRequest:
required:
- fromDate
- product
- toDate
type: object
properties:
aNumber:
type: string
description: Origin number in E164 format.
example: null
fromDate:
type: string
description: Not earlier than today – 1 year.
format: date
example: null
releaseCauseCode:
type: integer
description: Release cause code. (see APPENDIX A – Release Cause codes)
format: int64
example: null
product:
type: string
description: Valid product codes. Possible values - "IBN" for Cloud Numbers
- "ITFS" for International Freephone Numbers
- "GMN" for Global Mobile Numbers
- "UIFN" for Universal International Freephone Numbers
- "SCS" for Shared Cost Services
example: null
aCountry:
type: string
description: Origin country in ISO 3166-1 alpha-3 format.
example: null
include0Duration:
type: boolean
description: Include CDRs where the call duration is 0. Possible values are - true
- false (default value if not specified in the request)
example: null
bCountry:
type: string
description: Destination country in ISO 3166-1 alpha-3 format.
example: null
toDate:
type: string
description: 'Maximum 31 days after ''fromDate''
e.g.: 1 May till 31 May or 15 June till 15 July
'
format: date
example: null
bNumber:
type: string
description: Destination number in E164 format.
example: null
direction:
type: string
description: Valid options are - "IN" for inbound traffic (default value if not specified in the request)
- "OUT" for outbound. Not available for UIFN and SCS products
example: null
example: null