Skip to main content

Appointment Management

Getting started

For Broadband One, when a Managed Install is required, you'll need to find and reserve an appointment.

The reference for any reserved appointment needs to be included in the submitted order it relates to.

To see how this API forms part of the wider Broadband One order process, click the diagram below.

Explore end to end Broadband One order process by API

When is a Managed Install required?

Whenever an Openreach engineer is needed to perform installation tasks at an end user's premises.

This can be for provide type orders but also modify orders involving a change in network technology or when an end user wishes for a network termination (NTE/ONT) to be moved within the premises.

 

Finding and Reserving Appointments

Available appointment slots are kept in appointment books which can be searched.

Appointment availability varies with location. One can specify the location required for an appointment using one of either an address key or line identifier for the premises where the installation is required. The line identifier can be an Openreach known fixed line telephone number for the premises or the access line id for a working line serving the premises.

Appointment books are divided by  appointment type, site visit reason, and access network technology.

The usual appointment type is Standard and availability reflects the standard lead times for provision of the access technology required. Expedited appointments relate to where a reduced lead time has been asked for by the end user. the Supplier Failed appointment type is for reappointing an order where Openreach have failed to meet the original appointment.

Access technology not only covers SOADSL, SOGEA and FTTP but also whether the SOGEA install is using a new of existing line. There is also a separate access technology for FTTP standalone ONT Shift modify orders.

Site visit reason (Standard, Premium and Advanced) reflects the amount of effort required to carry out the installation task. Standard is the base installation including installing the network termination, connecting and powering up a modem and connecting one device to prove that the service is working. Premium and Advanced covers additional work including additional in building cabling.

Based on the requirements,  a number of appointment slots (am and pm) are offered, starting from the earliest appointment available date or the "validFrom" date whichever is later.

To reserve an appointment the same requirements are specified again (this time with the required appointment slot) and , if valid, an appointment reference is returned which can be included in the order.

The tutorial below covers as an example finding and making an appointment for an FTTP standard installation.

Summary of Appointment Attributes

Attribute Values Notes
appointmentType

'Standard', 

'Expedited', 

'Supplier Failed'

Expedited only applies to SoGEA and FTTP appointments. 

SoADSL only supports Standard appointments.

siteVisitReason

'Standard', 

'Premium', 

 'Advanced'

SoADSL only supports Standard and Premium.

value for characteristic name

"AccessTechnology"

'FTTP',

'FTTP Shift ONT',

'SOADSL',

'SOGEA New Line',

'SOGEA Existing Line'

 

value for characteristic name

"AccessLineId"

 

Alternative to address key. 

Access line id for working line at the premises.

value for characteristic name

"DirectoryNumber"

 

Alternative to address key. 

Openreach fixed line phone number for working line at the premises.

What you'll learn

  • Find appointment
  • Reserve appointment

     

Find an appointment

Request Method & URI

 

POST /appointmentManagement/v4/searchTimeSlot

Request Entity - Body

To return a list of suitable appointments, we need to know:

  • When you want one
  • The access technology required
  • What's expected from the appointment.
Key Example value What you need to know
value FTTP Access technology. Other values are SOGEA New Line, SOGEA Existing Line, and SOADSL,
place.id A15104999999 Openreach Gold NAD key.
startDateTime 2022-11-29T08:00:00Z ISO format. Date and time from which you want to search for an appointment.
appointmentType Standard Other values are Expedited, and Supplier Failed (for rebooking appointment in case of missed appointment).
siteVisitReason Standard Standard is the default value for all access technologies. Alternatives are Premium and Advanced.

Appointment date and time

The startDateTime example value shown above (2022-11-29T08:00:00Z) is an ISO-format string that comprises:

  • The date, in YYYY-MM-DD format
  • T
  • The time, as HH:MM:SS
  • A single-character suffix; either:
    • Z, if during GMT (starts the last Sunday of October at 0200 BST, ends last Sunday of March at 0100 GMT), or 
    • +01:00, if during BST (starting the last Sunday of March at 0100 GMT, ends last Sunday of October at 0200 BST)

If the example appointment during BST, the start time would be shown as:

T08:00:00+01:00

Payload
{	"relatedEntity": [
		{	"appointmentType": "Standard",
			"siteVisitReason": "Standard",
			"product": {
				"productSpecification": {"id": "BB1"},
				"characteristic": [
					{	"name": "AccessTechnology",
						"value": "FTTP"	} ],
				"place": [
					{	"id": "A15104999999",
						"role": "InstallationAddress",
						"@referredType": "OpenreachAddress"} ] },
			"id": "1",
			"role": "OrderInformation",
			"@referredType": "BTProductAppointmentSpecification",
			"@type": "BTProductAppointmentSpecification",
			"@baseType": "RelatedEntity" } ],
	"requestedTimeSlot": [
		{"validFor": {"startDateTime": "2022-11-22T09:00:00Z"} } ] }

Response Entity-Body

You're looking for the start and end date and time for the suitable appointment from a list of options.

Here's the appointment we'll be selecting from the response below:

Property Value (example)
startDateTime 2022-11-29T08:00:00Z
endDateTime 2022-11-29T13:00:00Z

Payload

{	"id": "21147d79-577b-488a-af57-f80ea5dfb876",
	"status": "done",
	"searchDate": "2022-11-09T07:06:39Z",
	"relatedEntity": [
		{	"appointmentType": "Standard",
			"siteVisitReason": "Standard",
			"product": {
				"productSpecification": {"id": "BB1"},
				"characteristic": [
					{	"name": "AccessTechnology",
						"value": "FTTP"} ],
				"place": [
					{	"id": "A15104646632",
						"role": "InstallationAddress",
						"@referredType": "OpenreachAddress"} ] 	},
			"id": "1",
			"role": "OrderInformation",
			"@referredType": "BTProductAppointmentSpecification",
			"@type": "BTProductAppointmentSpecification",
			"@baseType": "RelatedEntity"} ],
	"requestedTimeSlot": [
		{		"validFor": {"startDateTime": "2022-11-22T09:00:00Z"} } ],
	"availableTimeSlot": [
		{	"slot": "AM",
			"validFor": {
				"startDateTime": "2022-11-29T08:00:00Z",
				"endDateTime": "2022-11-29T13:00:00Z"} },
		{	"slot": "AM",
			"validFor": {
				"startDateTime": "2022-12-01T08:00:00Z",
				"endDateTime": "2022-12-01T13:00:00Z"} },
		{	"slot": "PM",
			"validFor": {
				"startDateTime": "2022-12-01T13:00:00Z",
				"endDateTime": "2022-12-01T18:00:00Z"} }, ] }

This is a heavily truncated response payload.

What start and end times mean

While it’s perhaps not critical to your work as developer, it’s helpful to know the time range between startDateTime and endDateTime is when the Managed Install engineer should begin their work. It gives no indication when the work will be finished, or service available.

You will be updated on engineering progress and service installation through order updates (KSUs) to your chosen endpoint.

Occasionally, a further engineering visit may be required. You will be notified by KSU if this is the case, at which point you can find, reserve, and book it following the same process.

Reserve appointment

Now you've found a suitable slot, you need to reserve it.

A successful request will return an appointment ID which should be included when you place the Broadband One order.

On receiving this appointment ID, you have 24 hours to confirm the visit.

Request Method & URI

 

POST /appointmentManagement/v4/appointment

Request Entity-Body

You'll create this payload with several values used to find an appointment.

In addition, you need to include the start and end date and time of the chosen appointment.

Key Example value
value FTTP
place.id A15104646632
startDateTime 2022-11-29T08:00:00Z
endDateTime 2022-11-29T13:00:00Z
appointmentType Standard
siteVisitReason Standard
Payload
{
	"relatedEntity": [
		{
			"appointmentType": "Standard",
			"siteVisitReason": "Standard",
			"product": {
				"productSpecification": {
					"id": "BB1"
				},
				"characteristic": [
					{
						"name": "AccessTechnology",
						"value": "FTTP"
					}
				],
				"place": [
					{
						"id": "A15104646632",
						"role": "InstallationAddress",
						"@referredType": "OpenreachAddress"
					}
				]
			},
			"id": "1",
			"role": "OrderInformation",
			"@referredType": "BTProductAppointmentSpecification",
			"@type": "BTProductAppointmentSpecification",
			"@baseType": "RelatedEntity"
		}
	],
	"validFor": {
		"startDateTime": "2022-11-29T08:00:00Z",
		"endDateTime": "2022-11-29T13:00:00Z"
	}
}

Response Entity-Body

On receiving this payload you need to store two values confirming the appointment has been reserved. This table includes their associated properties when placing the order.

Property Value (example Place order API property
id A42D0BDFR BESAppointmentId
startDateTime 2022-11-29T08:00:00Z appointment.appointmentStart

Payload

{   "id": "A42D0BDFR",
    "status": "initialized",
    "creationDate": "2022-11-05T19:15:14Z",
    "relatedEntity": [
        {   "appointmentType": "Standard",
            "siteVisitReason": "Standard",
            "product": {
                "productSpecification": {"id": "BB1"},
                "characteristic": [
                    {   "name": "AccessTechnology",
                        "value": "FTTP"} ],
                "place": [
                    {   "id": "A15104999999",
                        "role": "InstallationAddress",
                        "@referredType": "OpenreachAddress"} ] },
            "id": "1",
            "role": "OrderInformation",
            "@referredType": "BTProductAppointmentSpecification",
            "@type": "BTProductAppointmentSpecification",
            "@baseType": "RelatedEntity"} ],
    "validFor": {
        "startDateTime": "2022-11-29T08:00:00Z",
        "endDateTime": "2022-11-29T13:00:00Z"} }

On receiving a 200 status code, you can proceed to placing the Broadband one order within 24 hours to confirm this appointment.

Other Broadband One tutorials

Additional support

Back to top