999 emergency service access API

Introduction

This API is designed to allow holders of aql numbers to update their subscriber details with BT’s 999 system. This will provide an easy method for the update of BT’s 999 record details for our customers.

It is essential that all partners provide accurate and complete customer data. Failure to provide full and accurate information will delay the emergency services response to emergency situations.

Interface

Interface protocols

The protocol presented is HTTPS.
All the API methods will be executed by a standard POST request of the HTTPS protocol. The gateway URL for all calls is located at: https://gw.aql.com/telecoms/999.api.php

Interface methods

The interface methods will be as follows:

  • Activate Customer
  • Cease Customer
  • Modify Customer
  • Export Number
  • Import Number
  • Get Record IDs By Number
  • Get Record By ID

Return codes

Return codes used will be the standard meanings for 200 OK, 404 Unauthorised and 500 INTERNAL ERROR.

Activate customer

Request

Description:
Used to activate a number with associated customer details at BT’s TDM system.

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “activate”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
postcode Alphanumeric Yes 8 Customer’s postcode. This must be sent in the format of Out-code space In-code i.e.: LS11 5DF, S9 5AD, S60 3ML
effective_date Alphanumeric Yes Required Date on which the command associated with the listing is to be executed. Format used must be YYYY-MM-DD (where Y = Year, M = Month & D = Day)
surname Alphanumeric Yes 50 Name of the customer (if residential) or business Name
title Alphanumeric No 20 Title of the customer
forename Alphanumeric No 20 Forename of the customer
honours Alphanumeric No 30 Honours of the customer
business_suffix Alphanumeric No 50 Business suffix
line_type Alphanumeric No 30 Line type. This is for DDI/VoIP type number ranges or it basically will add a flag to show that the record which is being sent may not reflect the actual location of the caller. Options for the population of this field are EXT, DDI, FNET, or VOIP any of these possible mnemonic’s will flag to the Operator as well as an Emergency Authority who has the EISEC service. (This allows the Emergency Authority to see the name and address details we have for a customer at the time of a 999 call)
premises Alphanumeric No 60 Identifies premises on a thoroughfare i.e. house name and/or number. Examples “24”, “Bleak House”. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields
thoroughfare Alphanumeric No 55 The thoroughfare name and type Examples: Byron Close, Suffolk Lane, and High Street. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
locality Alphanumeric No 30 Village or an area within a town and Town if possible. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
notify-email Alphanumeric No   The email address to notify when a status change occurs. Optional, but will reduce functionality if omitted.
return-mode Blank No   See separate return-mode parameter document.
return-format Blank Yes   See separate return-format parameter document.

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Cease a customer

Request

Method: POST

Description: Used to remove the requested number at BT’s TDM system.

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “cease”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
effective_date Alphanumeric Yes   Date on which the command associated with the listing is to be executed. Format used must be YYYY-MM-DD (where Y = Year, M = Month & D = Day)
notify-email Alphanumeric Yes   The email address to notify when a status change occurs. Optional, but will reduce functionality if omitted.
return-mode Blank No   return-mode parameter
return-format Blank No   return-format parameter

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Modify a customer

Request

Method: POST

Description: Used to modify the requested number’s customer details at BT’s TDM system.

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “modify”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
postcode Alphanumeric Yes 8 Customer’s postcode. This must be sent in the format of Out-code space In-code i.e.: LS11 5DF, S9 5AD, S60 3ML
effective_date Alphanumeric Yes Required Date on which the command associated with the listing is to be executed. Format used must be YYYY-MM-DD (where Y = Year, M = Month & D = Day)
surname Alphanumeric Yes 50 Name of the customer (if residential) or business Name
title Alphanumeric No 20 Title of the customer
forename Alphanumeric No 20 Forename of the customer
honours Alphanumeric No 30 Honours of the customer
business_suffix Alphanumeric No 50 Business suffix
line_type Alphanumeric No 30 Line type. This is for DDI/VoIP type number ranges or it basically will add a flag to show that the record which is being sent may not reflect the actual location of the caller. Options for the population of this field are EXT, DDI, FNET, or VOIP any of these possible mnemonic’s will flag to the Operator as well as an Emergency Authority who has the EISEC service. (This allows the Emergency Authority to see the name and address details we have for a customer at the time of a 999 call).
premises Alphanumeric No 60 Identifies premises on a thoroughfare i.e. house name and/or number. Example 24 and/or Bleak House. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
thoroughfare Alphanumeric No 55 The thoroughfare name and type Examples: Byron Close, Suffolk Lane, and High Street. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
locality Alphanumeric No 30 Village or an area within a town and Town if possible. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
notify-email Alphanumeric No   The email address to notify when a status change occurs. Optional, but will reduce functionality if omitted.
return-mode Blank No   See separate return-mode parameter document.
return-format Blank Yes   See separate return-mode parameter document.

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Export number

Request

Used to initiate an export to another carrier at BT’s TDM system.

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “export”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
postcode Alphanumeric Yes 8 Customer’s postcode. This must be sent in the format of Out-code space In-code i.e.: LS11 5DF, S9 5AD, S60 3ML
effective_date Alphanumeric Yes   Date on which the command associated with the listing is to be executed. Format used must be YYYY-MM-DD (where Y = Year, M = Month & D = Day)
cp_identifier Numeric Yes   CUPID of importing CP
return-mode Blank No   See separate return-mode parameter document
return-format Blank No   See separate return-mode parameter document

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Import number

Request

Used to confirm the import of a number from other carrier at BT’s TDM system.

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “import”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
cp_identifier Numeric Yes   CUPID of exporting CP
postcode Alphanumeric Yes 8 Customer’s postcode. This must be sent in the format of Out-code space In-code i.e.: LS11 5DF, S9 5AD, S60 3ML
effective_date Alphanumeric Yes   Date on which the command associated with the listing is to be executed. Format used must be YYYY-MM-DD (where Y = Year, M = Month & D = Day)
surname Alphanumeric Yes 50 Name of the customer (if residential) or business Name
title Alphanumeric No 20 Title of the customer
forename Alphanumeric No 20 Forename of the customer
honours Alphanumeric No 30 Honours of the customer
business_suffix Alphanumeric Yes 50 Business suffix
line_type Alphanumeric Yes 30 Line type. This is for DDI/VoIP type number ranges or it basically will add a flag to show that the record which is being sent may not reflect the actual location of the caller. Options for the population of this field are EXT, DDI, FNET, or VOIP any of these possible mnemonic’s will flag to the Operator as well as an Emergency Authority who has the EISEC service. (This allows the Emergency Authority to see the name and address details we have for a customer at the time of a 999 call).
premises Alphanumeric Yes 60 Identifies premises on a thoroughfare i.e. house name and/or number. Example 24 and/or Bleak House. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
thoroughfare Alphanumeric Yes 55 The thoroughfare name and type Examples: Byron Close, Suffolk Lane, and High Street. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
locality Alphanumeric Yes 30 Village or an area within a town and Town if possible. Although this field is optional, partners should send a complete and accurate address. If this field is not populated, then full use must be made of other address fields.
return-mode Blank No   See separate return-mode parameter document.
return-format Blank Yes   See separate return-mode parameter document.

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Get last ID by number

Request

Returns the last ID associated with the requested phone number

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “getlastidbynumber”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
return-mode Numeric No   See separate return-mode parameter document
return-format Numeric No   See separate return-mode parameter document

Output parameters

Return format of FAILED command:

<status_code>: <text_description>

Return format of SUCCESS command:

<status_code>: <text_description>

id: <id>


Get record by ID

Request

Returns all attributes of requested record

Parameter Type Required Length Description
command Alphanumeric Yes   Value must be “getrecordbyid”
username Alphanumeric Yes   aql username
password Alphanumeric Yes   aql password
number Numeric Yes 15 Telephone Number. Must start with 0 e.g. 01242111222
id Numeric Yes   Record ID number
return-mode Blank No   See separate return-mode parameter document
return-format Blank No   See separate return-mode parameter document

Request

<status_code>: <text_description>
id: <id>
created: <created> command: <command>
record_status: <record_status>
postcode: <postcode>
effective_date: <effective_date>
surname: <surname>
title: <title>
forename: <forename>
honours: <honours>
business_suffix: <business_suffix>
line_type: <line_type>
thoroughfare: <thoroughfare>
locality: <locality>
cp_identifier: <cp_identifier>
ret_code: <ret_code>
err_msg: <err_msg>

Record status

Status Description
READY Data captured and ready to send. All 999 update requests are collated and sent in batches periodically
PENDING Data submitted
COMPLETE Request completed
FAILED Request failed

Responses

Return codes

You can see all possible return codes in our 999 API return codes reference.

Status codes

Status Description
200 OK
400 BAD REQUEST
401 AUTHENTICATION ERROR
500 INTERNAL SYSTEM ERROR
600 INVALID COMMAND
67001 NUMBER NOT VALID OR PROVIDED
67013 NUMBER NOT ON ACCOUNT
67008 PREVIOUS COMMAND STILL PENDING
67009 NUMBER ALREADY ACTIVE. CANNOT ACTIVATE AGAIN
67010 NUMBER MUST FIRST BE ACTIVATED USING THE ACTIVATE COMMAND
67004 SURNAME NOT PROVIDED
67002 POSTCODE NOT PROVIDED
67003 EFFECTIVE_DATE NOT PROVIDED
67005 LINE_TYPE NOT PROVIDED
67006 CP_IDENTIFIER NOT PROVIDED
67011 NUMBER CANNOT BE CEASED BECAUSE IT IS NOT ALREADY ACTIVE
67007 ID NOT PROVIDED
67012 INVALID ID FOR THAT NUMBER