Skip to content
Last updated

Vodafone EDGE

Vodafone Wholesale provide a fibre and copper based managed service via their Wholesale Access Platform (also known as EDGE / WAP) that offers access to FTTP, SOGEA and SOADSL. Access to the Vodafone service is via a SOAP API suite based on the Vodafone Edge Service Model (ESM).

The Fibre Cafe has a connector to integrate with this API. As with all connectors, tenants interact with it through the standard Fibre Cafe Tenant API (REST/JSON) — the connector handles translation to and from Vodafone's SOAP interface, so the examples below are all standard Tenant API requests.

The supplier system code for this connector is VODAFONE.

Authentication & Setup

Authentication with the Vodafone EDGE platform is certificate based - mutual TLS (HTTPS) is used along with a Vodafone-provisioned username supplied in each request. To enable us to set up the connector, the following information is required:

  • Vodafone-provisioned UserName
  • Client certificate and private key for mutual TLS

Address search is supported by the connector. It uses Vodafone's address management service to return the Vodafone Address reference (a Gold address key, e.g. A00000000000) and District code (e.g. XX), which together form the standard address identifier pair used for FTTP. It supports searching by UPRN and by postcode/partial address (e.g. AB1 2CD).

The identifiers are encapsulated in the standard AddressIdentifier object, so a single request can carry all identifiers required by different suppliers:

{
  "identifier": {
    "id": "900000000000",
    "type": "UPRN",
    "additionalIdentifiers": [
      {
        "id": "A00000000000",
        "type": "NAD"
      },
      {
        "id": "XX",
        "type": "DistrictCode"
      }
    ]
  }
}

The Vodafone identifier types map onto the Tenant API as follows:

Tenant API typeVodafone identifierNotes
NADAddress referenceGold address key; paired with DistrictCode
DistrictCodeDistrict codePaired with NAD
UPRNUPRNStandalone alternative to the NAD pair

If a NAD key and District Code (or UPRN) are already known, these can be provided directly to the other APIs without performing an address lookup first. The order of identifiers in the object is not important.

A lookup returns an array of matching premises. Alongside the identifiers, each entry includes the full address detail (name, streetNumber/streetName, city, postcode, country and any subAddress unit number), the qualifier (Gold or Silver) and a source of VODAFONE.

Vodafone distinguishes Gold addresses (full match with Address reference + District code) from Silver addresses (postcode-level partial match). FTTP orders require a Gold address; UPRN may be used as an alternative.

Service Availability

The connector returns service availability for an address including the available service specifications (product family/access technology), available line profiles, and line characteristics such as speeds.

Only FTTP (Single Play FTTP, product code PC00042) is supported for availability in the initial release.

Service Specifications

When returning service specifications for an address, the available line profiles are returned in the serviceCharacteristics field. For Vodafone the LINE_PROFILE values are downstream/upstream speed pairs (e.g. 40M/10M):

{
  "serviceSpecifications": [
    {
      "id": "FTTP",
      "name": "Single Play FTTP",
      "serviceCharacteristics": [
        {
          "name": "LINE_PROFILE",
          "values": [
            "40M/10M",
            "80M/20M",
            "115M/20M",
            "220M/30M",
            "550M/75M",
            "1000M/115M"
          ]
        }
      ]
    }
  ]
}

See Line Profiles below for the full set of values.

Line Characteristics

Line information is returned under siteInformation.line, including the installation type, line type and the lineCharacteristics defined on the line characteristics page:

{
  "siteInformation": {
    "line": {
      "installationType": "STANDARD",
      "type": "NEW",
      "lineType": "FIBRE",
      "lineCharacteristics": [
        { "name": "AVAILABILITY_FLAG", "value": "Y" },
        { "name": "MINIMUM_LEAD_TIME", "value": "3" },
        { "name": "MIN_DOWNSTREAM_MBPS", "value": "40" },
        { "name": "MAX_DOWNSTREAM_MBPS", "value": "1000" },
        { "name": "MIN_UPSTREAM_MBPS", "value": "10" },
        { "name": "MAX_UPSTREAM_MBPS", "value": "115" },
        { "name": "MINIMUM_SITE_VISIT_REASON", "value": "Premium" }
      ]
    }
  }
}

This includes the minimum and maximum downstream/upstream speeds (MIN|MAX_DOWNSTREAM_MBPS and MIN|MAX_UPSTREAM_MBPS) and the MINIMUM_LEAD_TIME in days. The AVAILABILITY_FLAG carries the FTTP ONT availability status returned by Vodafone: Y (available now - the order is accepted and progressed), P (planned - available from a future date; the order is held until the Ready for Service date), or W (waiting - capacity is being built; the order may be auto-cancelled after 90 working days if it remains unavailable). type is NEW and lineType is FIBRE where a new fibre line can be installed. A MINIMUM_SITE_VISIT_REASON may also be returned, indicating the minimum Site Visit Reason recommended when ordering at this address (e.g. Premium); this can differ by order type. An INSTALL_NOTES characteristic is returned alongside an EXTENDED_STANDARD installationType, carrying the detail of the two-stage install (e.g. KCI2 Assure) — see Installation Types.

Where lines are already present at the premises, an existingLines array is also returned under siteInformation. For a premises with an ONT installed, each entry describes the line and its ONT:

{
  "siteInformation": {
    "existingLines": [
      {
        "lineCharacteristics": [
          { "name": "MAX_DOWNSTREAM_MBPS", "value": "1000" },
          { "name": "MIN_DOWNSTREAM_MBPS", "value": "40" },
          { "name": "MAX_UPSTREAM_MBPS", "value": "115" },
          { "name": "MIN_UPSTREAM_MBPS", "value": "10" }
        ],
        "lineType": "FIBRE",
        "ontReference": "ONT0000000000",
        "ontSerialNumber": "ALCL00000000",
        "ontFloor": "G",
        "ontRoom": "Reception Room 2",
        "ontPosition": "Shelf",
        "ports": [
          { "portNumber": 1, "description": "Data", "status": "ACTIVE" }
        ]
      }
    ]
  }
}

Each entry gives the line's lineCharacteristics and lineType, the ontReference and ontSerialNumber, the ONT location (ontFloor / ontRoom / ontPosition), and the ports on the ONT — each with a portNumber, a description (port type, e.g. Data) and a status (ACTIVE or stopped). An ONT with a spare port can be reused via an Existing ONT order, supplying its ontReference as ONT_REFERENCE.

Copper and other non-ONT lines are returned in the same array in a leaner form, without ONT or port detail:

{
  "siteInformation": {
    "existingLines": [
      {
        "lineType": "COPPER",
        "lineId": "PPR0000000P0",
        "status": "STOPPED",
        "productType": "MPF"
      }
    ]
  }
}

These entries give the lineType (e.g. COPPER), the lineId, the line status (e.g. ACTIVE or STOPPED) and the productType (e.g. MPF, WLR, SOGEA). The lineId is the value supplied as LINE_ID when migrating or taking over the existing service — see Order Types.

Constraints

The line may also carry a constraints array describing conditions that affect the install. Each entry has a code and a free-text text:

{
  "siteInformation": {
    "line": {
      "constraints": [
        { "code": "OTHER", "text": "TMA notice required" }
      ]
    }
  }
}

Constraints are informational and do not prevent an order being placed, but they can affect lead time — a Traffic Management Act (TMA) notice, for example, must be served before street works can begin. Where the constraint is not mapped to a specific code, OTHER is returned and the detail is in text.

Installation Types

The installationType field within siteInformation.line indicates the install requirement. This connector returns the following values:

installationTypeDescription
STANDARDA standard appointment is required
EXTENDED_STANDARDTwo-stage installation; see INSTALL_NOTES

This connector supports 1 or 2 stage installations, the latter also known as 'KCI2 Assure'. Where installationType is EXTENDED_STANDARD, refer to the corresponding INSTALL_NOTES line characteristic for details:

{
  "siteInformation": {
    "line": {
      "installationType": "EXTENDED_STANDARD",
      "lineCharacteristics": [
        { "name": "INSTALL_NOTES", "value": "KCI2 Assure" }
      ]
    }
  }
}

Where installationType is not returned, an appointment is not required in the order. Note that this may change as the order progresses and an appointment may be required later — this is notified as a REAPPOINT update and is resolved by reserving an appointment and amending the order (see Order Updates).

Where a managed install is required, an appointment must be reserved first (see Appointing).

Appointing

When a managed install is required, appointment timeslots can be listed and reserved using the standard appointing endpoints.

  • Timeslots are classified as weekday, saturday, sunday and AM/PM
  • The default SITE_VISIT_REASON Standard is used where not provided as a service characteristic
  • A Premium or Advanced SITE_VISIT_REASON can be requested instead — this must be provided consistently during appointment availability and reservation

Example showing an appointment reservation with a Premium SITE_VISIT_REASON:

{
  "supplier": "VODAFONE",
  "address": {
    "id": "A00000000000",
    "type": "NAD",
    "additionalIdentifiers": [
      { "id": "XX", "type": "DistrictCode" }
    ]
  },
  "serviceSpecification": { "id": "FTTP" },
  "serviceCharacteristics": [
    { "name": "SITE_VISIT_REASON", "value": "Premium" }
  ],
  "purpose": "PROVIDE",
  "timeslot": {
    "timeslotStartDateTime": "2026-02-02T08:00:00Z",
    "timeslotEndDateTime": "2026-02-02T13:00:00Z"
  }
}

The response echoes the request and returns the matching slots in availableTimeslots:

{
  "supplier": "VODAFONE",
  "address": {
    "id": "900000000000",
    "type": "UPRN",
    "additionalIdentifiers": [
      { "id": "A00000000000", "type": "NAD" },
      { "id": "XX", "type": "DistrictCode" }
    ]
  },
  "serviceSpecification": { "id": "FTTP" },
  "availableTimeslots": [
    {
      "timeslotStartDateTime": "2026-02-02T08:00:00.000Z",
      "timeslotEndDateTime": "2026-02-02T13:00:00.000Z",
      "classification": "WEEKDAY_AM",
      "standard": true
    },
    {
      "timeslotStartDateTime": "2026-02-02T13:00:00.000Z",
      "timeslotEndDateTime": "2026-02-02T18:00:00.000Z",
      "classification": "WEEKDAY_PM",
      "standard": true
    }
  ]
}

Each slot carries a classification (WEEKDAY_AM, WEEKDAY_PM, SATURDAY_AM, SATURDAY_PM, SUNDAY_AM, SUNDAY_PM) and a standard flag indicating whether it is a standard appointment slot. The timeslotStartDateTime / timeslotEndDateTime of the chosen slot are supplied when reserving.

Orders

Orders are placed with the create order request. New provides are FTTP only; supplying a LINE_ID (the existing working line) switches an existing SOGEA, SOADSL, FTTC or FTTH service to FTTP.

Service Characteristics

The following service characteristics are required when placing orders:

  • LINE_PROFILE: the bandwidth product as a downstream/upstream speed pair (e.g. 40M/10M) - values are returned in service availability
  • RETAILER_ID: unique identifier for the retailer provided by OFCOM

The following are required when migrating or taking over an existing service:

  • LINE_ID: the existing working line being migrated or taken over
  • ONT_REFERENCE: the existing ONT (Existing ONT and Transfer journeys)

These characteristics are optional depending on the order:

  • MINIMUM_SPEED: requested guaranteed minimum speed (realtime) - default is 0
  • CARE_LEVEL: ongoing care level - see care levels table below
  • ECC_CHARGEBAND: excess construction charges (FTTP)
  • SITE_VISIT_REASON: Standard, Premium, Advanced or No site visit - must match the reserved appointment (where one is booked)
  • STATIC_IP_REQUESTED: number of static IP addresses required
  • PROJECT_REFERENCE: applicable with an Advanced SITE_VISIT_REASON
  • NAMED_ENGINEER: request a named engineer (Y / N)
  • NAMED_ENGINEER_NOTES: free-text note accompanying a named-engineer request
  • ONT_FLOOR / ONT_ROOM / ONT_POSITION: ONT install location

The request may also include ORDER_TYPE as a service characteristic, mirroring the top-level orderType (e.g. NEW).

Order Types

The FTTP journey is determined by the orderType together with whether a LINE_ID is supplied:

orderTypeFTTP journeyDescription
NEWNew ONTNew ONT requested
NEW + LINE_IDMigration New ONTMigrate to FTTP, new ONT
STARTExisting ONTReuse a spare port on an existing ONT
START + LINE_IDMigration Existing ONTMigrate to FTTP, existing ONT
TAKEOVERWLTOWorking Line Take Over
TRANSFERTransferMove an ONT service to Vodafone
SWAPNew ONTSwap the ONT on the service
CEASECeaseCease a live FTTP service
MODIFYModifyModify a live FTTP service
AMENDAmendAmend an in-flight order
CANCELLATIONSCancelCancel an in-flight order

Further detail on the individual journeys:

  • New ONT — used when no ONT is installed at the premises, the existing ONT has no spare data ports, or a new ONT is wanted regardless of any existing one.
  • Migration journeys — used to move an existing SOGEA, SOADSL, FTTC or FTTH service to FTTP. Managed-cease KCIs are sent for the working WLR/MPF/SOGEA service, which is ceased on the order completion date.
  • WLTO — lets an incoming occupant proactively take over a service the outgoing occupier has not requested to cease.
  • Modify — see Modify and Cease Orders below for the characteristics that can be changed.
  • Amend — e.g. changes the requested completion date and/or appointment.

Line Profiles

A LINE_PROFILE characteristic is required for Vodafone orders. Line profiles are the bandwidth product expressed as a downstream/upstream speed pair — the value is passed straight through to the Vodafone EDGE API and is not mapped by the Fibre Cafe.

LINE_PROFILEDownstreamUpstream
40M/10M40Mbit/s10Mbit/s
80M/20M80Mbit/s20Mbit/s
115M/20M115Mbit/s20Mbit/s
220M/30M220Mbit/s30Mbit/s
550M/75M550Mbit/s75Mbit/s
1000M/115M1000Mbit/s115Mbit/s

The available values are returned during service availability and may vary depending on the commercial arrangement with Vodafone and by address/service type. Always use the values returned in the serviceCharacteristics for the address rather than assuming the full set is orderable; they are not returned in a guaranteed order.

Care Levels

CARE_LEVEL sets the ongoing care (repair) level for the service. The default care level where not provided is Standard.

CARE_LEVELNotes
Standard[Default]
Enhanced
Prompt

Not all care levels apply to all products — confirm availability with Vodafone for the service being ordered.

Create Order

A New ONT provide (orderType: NEW) carries the full set of characteristics. The address and LINE_PROFILE are taken from the preceding service availability step, and appointmentReservationId is the reservation returned when the appointment was reserved.

{
  "orderType": "NEW",
  "supplier": "VODAFONE",
  "address": {
    "id": "900000000000",
    "type": "UPRN",
    "additionalIdentifiers": [
      { "id": "XX", "type": "DistrictCode" },
      { "id": "A00000000000", "type": "NAD" }
    ]
  },
  "serviceOrderItem": {
    "serviceSpecification": { "id": "FTTP" },
    "serviceCharacteristics": [
      { "name": "LINE_PROFILE", "value": "115M/20M" },
      { "name": "ORDER_TYPE", "value": "NEW" },
      { "name": "SITE_VISIT_REASON", "value": "Standard" },
      { "name": "CARE_LEVEL", "value": "Enhanced" },
      { "name": "STATIC_IP_REQUESTED", "value": "4" },
      { "name": "ECC_CHARGEBAND", "value": "0" },
      { "name": "NAMED_ENGINEER", "value": "Y" },
      { "name": "NAMED_ENGINEER_NOTES", "value": "Fred Smith" },
      { "name": "ONT_FLOOR", "value": "G" },
      { "name": "ONT_ROOM", "value": "Reception Room 2" },
      { "name": "ONT_POSITION", "value": "Shelf" },
      { "name": "RETAILER_ID", "value": "XXX" }
    ]
  },
  "primaryContact": {
    "name": "John Smith",
    "email": "john@smith.com",
    "phoneNumber": "01234567890"
  },
  "appointmentReservationId": 1000001,
  "hazards": "Hazardous materials stored on site",
  "onSiteRestrictions": "Restricted access",
  "notes": "Free-text notes for the engineer"
}

The request fields are:

FieldDescription
orderTypeThe order journey — see Order Types above
supplierConnector system code (VODAFONE)
addressThe AddressIdentifier object for the premises
serviceOrderItem.serviceSpecification.idThe product being ordered (FTTP)
serviceOrderItem.serviceCharacteristicsThe ordered service characteristics
primaryContactEnd-user contact details
appointmentReservationIdThe appointment reservation reference
hazardsOptional free-text site hazards
onSiteRestrictionsOptional free-text access restrictions
notesOptional free-text notes

Existing ONT (orderType: START) reuses an ONT already installed at the premises, identified by ONT_REFERENCE (from the availability existingLines). Because no ONT installation visit is required, it supplies a requestedCompletionDate directly instead of an appointmentReservationId, and the named-engineer fields and SITE_VISIT_REASON are not required/supported:

{
  "orderType": "START",
  "supplier": "VODAFONE",
  "address": {
    "id": "900000000000",
    "type": "UPRN",
    "additionalIdentifiers": [
      { "id": "XX", "type": "DistrictCode" },
      { "id": "A00000000000", "type": "NAD" }
    ]
  },
  "serviceOrderItem": {
    "serviceSpecification": { "id": "FTTP" },
    "serviceCharacteristics": [
      { "name": "ONT_REFERENCE", "value": "ONT0000000000" },
      { "name": "LINE_PROFILE", "value": "115M/20M" },
      { "name": "ORDER_TYPE", "value": "START" },
      { "name": "CARE_LEVEL", "value": "Enhanced" },
      { "name": "STATIC_IP_REQUESTED", "value": "4" },
      { "name": "ECC_CHARGEBAND", "value": "0" },
      { "name": "RETAILER_ID", "value": "XXX" }
    ]
  },
  "primaryContact": {
    "name": "John Smith",
    "email": "john@smith.com",
    "phoneNumber": "01234567890"
  },
  "requestedCompletionDate": "2026-08-19",
  "hazards": "Hazardous materials stored on site",
  "onSiteRestrictions": "Restricted access"
}

Modify and Cease Orders

MODIFY and CEASE orders act on an existing live service rather than a premises, and use a leaner request shape: there is no address, serviceOrderItem wrapper, primaryContact or appointmentReservationId — instead the order carries a top-level serviceId identifying the live service, and a flat serviceCharacteristics array.

A cease order:

{
  "orderType": "CEASE",
  "supplier": "VODAFONE",
  "serviceId": "VFP0000000",
  "requestedCompletionDate": "2026-08-13T09:00:00Z"
}

A modify order is incremental rather than a full resend. Only the characteristics being changed need to be supplied, and each carries an action describing the change:

actionDescription
ADDAdd a characteristic not currently on the service
UPDATEChange the value of an existing characteristic
REMOVERemove a characteristic from the service

The connector emits a separate add, update and remove block to Vodafone accordingly. Characteristics omitted from the request are left untouched on the service.

The following characteristics can be modified:

  • LINE_PROFILE
  • CARE_LEVEL
  • STATIC_IP_REQUESTED
  • MINIMUM_SPEED

Changing the bandwidth on a live service:

{
  "orderType": "MODIFY",
  "supplier": "VODAFONE",
  "serviceId": "VFP0000000",
  "serviceCharacteristics": [
    { "name": "LINE_PROFILE", "value": "220M/30M", "action": "UPDATE" }
  ],
  "requestedCompletionDate": "2026-07-28T00:00:00.000Z"
}

The response and subsequent order updates (KCIs) follow the same pattern as provide orders — see Order Response below and Order Updates.

Order Response

The response echoes the request and adds the gateway order reference, status and timestamps:

{
  "orderType": "NEW",
  "supplier": "VODAFONE",
  "address": {
    "id": "900000000000",
    "type": "UPRN",
    "additionalIdentifiers": [
      { "id": "XX", "type": "DistrictCode" },
      { "id": "A00000000000", "type": "NAD" }
    ]
  },
  "serviceOrderItem": {
    "serviceSpecification": { "id": "FTTP" },
    "serviceCharacteristics": [
      { "name": "LINE_PROFILE", "value": "115M/20M" },
      { "name": "ORDER_TYPE", "value": "NEW" },
      { "name": "SITE_VISIT_REASON", "value": "Standard" },
      { "name": "CARE_LEVEL", "value": "Enhanced" },
      { "name": "STATIC_IP_REQUESTED", "value": "4" },
      { "name": "ECC_CHARGEBAND", "value": "0" },
      { "name": "NAMED_ENGINEER", "value": "Y" },
      { "name": "NAMED_ENGINEER_NOTES", "value": "Fred Smith" },
      { "name": "ONT_FLOOR", "value": "G" },
      { "name": "ONT_ROOM", "value": "Reception Room 2" },
      { "name": "ONT_POSITION", "value": "Shelf" },
      { "name": "RETAILER_ID", "value": "XXX" }
    ]
  },
  "primaryContact": {
    "name": "John Smith",
    "email": "john@smith.com",
    "phoneNumber": "01234567890"
  },
  "appointmentReservationId": 1000001,
  "requestedCompletionDate": "2026-07-01",
  "hazards": "Hazardous materials stored on site",
  "onSiteRestrictions": "Restricted access",
  "id": 1000002,
  "status": "RECEIVED_BY_GATEWAY",
  "created": "2026-06-24T10:30:41.682Z"
}

The additional response fields are:

FieldDescription
idThe gateway order identifier
statusThe order status
requestedCompletionDateThe requested completion date
createdWhen the gateway received the order

As the order progresses, further fields are set on it:

FieldDescription
updatedWhen the order was last changed
supplierOrderNumberVodafone EDGE order reference
appointmentTimeslotThe confirmed appointment window
committedDateThe date committed by the supplier
targetDateThe current target completion date
updatesThe KCIs received against the order

The appointmentTimeslot carries the timeslotStartDateTime and timeslotEndDateTime of the reserved slot, and supplierOrderNumber takes the form ALF-YYMMDD-Wnnnnnnn.

Order Amendments

Amendment and cancellation requests can be made for inflight orders. The following amendments are permitted:

  • Change appointment (date/time)
  • Update contact details

Amendments are placed against the order and confirmed asynchronously — a general UPDATE KCI is emitted while the amendment is PENDING, followed by an AMENDED update once applied. See Order Updates below.

Order Updates

As the order progresses, the Fibre Cafe sends asynchronous updates (KCIs) to the tenant via the Tenant Updates API; each update is also retained on the order in an updates array. Most Vodafone updates are INFORMATIONAL, with the Vodafone EDGE status code carried in information.supplierCode (and supplierCodes) and a free-text supplierNotes entry. Where the supplier needs action from the tenant the update carries an action reason instead — see the mapping below. Once acknowledged, the order also carries a supplierOrderNumber (the Vodafone EDGE order reference, e.g. ALF-YYMMDD-Wnnnnnnn).

The EDGE status codes map to the KCI reason as follows:

EDGE codeReasonDescription
UPDATEInitial update on gateway acceptance
2001ACKNOWLEDGEDOrder accepted by the supplier (KCI1)
3001COMMITTEDOrder committed by the supplier (KCI2)
8001ADDITIONALNamed-engineer details supplied
9099DELAYOrder delayed by the supplier
9029DELAYSupplier missed the appointment
9009REAPPOINTOrder must be reappointed
3004UPDATEDownstream supplier work complete; awaiting Vodafone completion
502UPDATECancellation raised with the supplier
540AMENDEDAmendment accepted and applied
4001COMPLETED / CANCELLEDOrder completed (KCI3), or cancellation completed

Additional behaviour attached to these codes:

  • UPDATE is also emitted while an amendment or cancellation is PENDING, and carries the pending serviceOrderAmendment / serviceOrderCancellation. These gateway-raised updates have no supplierCode.
  • 3001 sets the committedDate and targetDate on the order.
  • 9099 and 9029 move the order to HELD and carry the delay detail, and any supplier review date, in supplierNotes.
  • 9009 moves the order to PENDING; the order must be reappointed within 15 calendar days to avoid cancellation.
  • 540 carries a serviceOrderAmendment object.
  • 4001 covers both completion and cancellation. The connector resolves which from the Fibre Cafe order state, so read the resulting order status (COMPLETED or CANCELLED) rather than interpreting the code.

An order receives two completion-related updates. 3004 reports that Vodafone's own downstream supplier has finished their work on the order; Vodafone then complete the order themselves and send 4001 later. Only 4001 moves the order to COMPLETED — despite the wording of the accompanying supplierNotes, an order is not complete on 3004.

Not every code appears on every order — 8001 (named-engineer details) is only sent where the order has an appointment, so an Existing ONT order runs UPDATEACKNOWLEDGED (2001) → COMMITTED (3001) → UPDATE (3004) → COMPLETED (4001) without it.

An individual update (the completion KCI):

{
  "id": "00000000-0000-0000-0000-000000000006",
  "supplier": "VODAFONE",
  "sequenceNumber": 6,
  "issuedOn": "2026-07-08T06:54:14.000Z",
  "receivedOn": "2026-07-08T06:57:22.999Z",
  "deliveryStatus": "PENDING",
  "updateType": "INFORMATIONAL",
  "supplierNotes": [
    { "note": "Order Completed", "created": "2026-07-08T06:54:14.000Z" }
  ],
  "information": {
    "type": "COMPLETED",
    "supplierCode": "4001",
    "supplierCodes": [ "4001" ]
  }
}

The order's serviceCharacteristics are updated as network-assigned values become known. SERVICE_ID is populated once the supplier has accepted the order; ONT_REFERENCE and ONT_PORT are added on completion:

{
  "serviceCharacteristics": [
    { "name": "SERVICE_ID", "value": "VFP0000000" },
    { "name": "ONT_REFERENCE", "value": "ONT0000000000" },
    { "name": "ONT_PORT", "value": "1" }
  ]
}

Persist the SERVICE_ID — it identifies the live service and is supplied as the top-level serviceId on future modify and cease orders. It is not sent as a service characteristic.

Missed Appointments and Delays

A missed appointment is reported as a DELAY (code 9029), followed by a REAPPOINT (code 9009) where a new appointment is needed — the order must be reappointed within 15 calendar days to avoid cancellation. It is resolved by reserving a new appointment and amending the order (confirmed via AMENDED, below).

A delay is reported with code 9099. The reason and any review date given by Vodafone's own suppliers are carried in supplierNotes — for a two-stage (EXTENDED_STANDARD) install this is where Step-1 work is reported:

{
  "sequenceNumber": 3,
  "updateType": "INFORMATIONAL",
  "supplierNotes": [
    {
      "note": "Your order has been delayed. Step-1 work required. Our Suppliers have given us a review date of 14/08/2026.",
      "created": "2026-08-06T09:55:24.000Z"
    }
  ],
  "information": {
    "type": "DELAY",
    "supplierCode": "9099",
    "supplierCodes": [ "9099" ]
  }
}

A delay moves the order to HELD and does not change the targetDate. No tenant action is required unless a subsequent REAPPOINT or INFORMATION_REQUIRED KCI asks for it.

Amendments

When an amendment is placed against an order, the amend-related KCIs carry a serviceOrderAmendment object identifying the amendment (id), the affected orderId, the new appointmentReservationId / requestedCompletionDate, and its status (PENDING, COMPLETED or REJECTED). A general UPDATE is emitted while the amendment is PENDING, and an AMENDED update (code 540) once it is applied:

{
  "id": "00000000-0000-0000-0000-000000000009",
  "supplier": "VODAFONE",
  "sequenceNumber": 9,
  "issuedOn": "2026-07-10T13:25:47.000Z",
  "receivedOn": "2026-07-10T15:04:48.980Z",
  "deliveryStatus": "DELIVERED",
  "updateType": "INFORMATIONAL",
  "supplierNotes": [
    { "note": "Update: Order Amended", "created": "2026-07-10T13:25:47.000Z" }
  ],
  "information": {
    "type": "AMENDED",
    "supplierCode": "540",
    "supplierCodes": [ "540" ]
  },
  "serviceOrderAmendment": {
    "orderId": 1000002,
    "supplier": "VODAFONE",
    "appointmentReservationId": 1000001,
    "id": 10001,
    "status": "COMPLETED"
  }
}

Cancellations

A cancellation is confirmed over three updates. A gateway UPDATE is emitted while the request is PENDING, carrying the serviceOrderCancellation but no supplierCode:

{
  "id": "00000000-0000-0000-0000-000000000004",
  "supplier": "VODAFONE",
  "sequenceNumber": 4,
  "deliveredOn": "2026-08-06T13:54:34.978Z",
  "deliveryStatus": "DELIVERED",
  "updateType": "INFORMATIONAL",
  "information": { "type": "UPDATE" },
  "serviceOrderCancellation": {
    "supplier": "VODAFONE",
    "orderId": 1000002,
    "reasonCode": "CUSTOMER_CHANGED_MIND",
    "text": "Delivery too long",
    "id": 10001,
    "status": "PENDING"
  }
}

Vodafone then sends code 502 confirming the cancellation has been raised with them, with the reason in supplierNotes and no serviceOrderCancellation attached:

{
  "id": "00000000-0000-0000-0000-000000000005",
  "supplier": "VODAFONE",
  "sequenceNumber": 5,
  "issuedOn": "2026-08-06T13:56:23.000Z",
  "receivedOn": "2026-08-06T13:58:50.939Z",
  "deliveryStatus": "DELIVERED",
  "updateType": "INFORMATIONAL",
  "supplierNotes": [
    { "note": "Cancelled by End User", "created": "2026-08-06T13:56:23.000Z" }
  ],
  "information": {
    "type": "UPDATE",
    "supplierCode": "502",
    "supplierCodes": [ "502" ]
  }
}

Code 4001 then carries the final CANCELLED state with the completed serviceOrderCancellation, and the order status becomes CANCELLED:

{
  "id": "00000000-0000-0000-0000-000000000006",
  "supplier": "VODAFONE",
  "sequenceNumber": 6,
  "issuedOn": "2026-08-06T13:55:45.000Z",
  "receivedOn": "2026-08-06T14:00:29.373Z",
  "deliveryStatus": "DELIVERED",
  "updateType": "INFORMATIONAL",
  "supplierNotes": [
    { "note": "Order Cancel Completed.", "created": "2026-08-06T13:55:45.000Z" }
  ],
  "information": {
    "type": "CANCELLED",
    "supplierCode": "4001",
    "supplierCodes": [ "4001" ]
  },
  "serviceOrderCancellation": {
    "supplier": "VODAFONE",
    "orderId": 1000002,
    "reasonCode": "CUSTOMER_CHANGED_MIND",
    "text": "Delivery too long",
    "id": 10001,
    "status": "COMPLETED"
  }
}

The serviceOrderCancellation object carries:

FieldDescription
idThe cancellation identifier
orderIdThe order being cancelled
reasonCodeThe cancellation reason, e.g. CUSTOMER_CHANGED_MIND
textFree-text detail accompanying the reason
statusPENDING, COMPLETED or REJECTED

The same pattern applies whether the order being cancelled is a provide or a cease order.

Notes

  • Order placement, the order types and the provide order-update (KCI) lifecycle are documented, along with the delay, amendment and cancellation updates. The detailed request/response bodies for the non-provide journeys (migration, transfer, takeover, swap and amend) and the remaining KCI reasons (e.g. unsolicited cease) are not yet documented for this connector.
  • Only FTTP is supported for new orders. An existing SOGEA, SOADSL, FTTC or FTTH service can be switched (migrated) to FTTP.

Version History

VersionChange
1Initial release of the Vodafone EDGE connector