CityFibre - Ticketing API

Download OpenAPI specification:Download

Introduction

This documentation provides information on the Ticketing API and how to access it.

Please note:

  • Tickets requests for multiple ServiceID’s at the same time is not currently catered for.

  • When Tickets are raised, they will then be handled by CityFibre, and updates will be provided to a previously configured endpoint provided by the Ticket Reporter.

  • In this document, we use Buyer and Supplier for the Service Provider / CityFibre respectively and Reporter as the person within the Buyers Organisation.

  • This document describes the messages which can pass between Buyer and Supplier, and the various status changes and updates for ticket requests though-out the process.

  • We recommend that you always perform the Supplier Service Diagnostic request before you raise a Ticket, this will ensure the Buyer is not charged for faults on their own network. You can find the Service Diagnostics API document here.

Design Overview

See diagram Ticketing_API_v1.1 for an overview of the flow.

Ticketing API v1.1
Ticketing API v1.1
  1. The Buyer detects or is informed of a problem on the network. Reporter gathers any relevant information. The fault is then determined to be within Suppliers network.

  2. The Reporter on the Buyer side can call the API addFaultReport which will validate the details and the ServiceID, once the issue is confirmed a Ticket is raised automatically and then progresses through the workflow until it is resolved.

  3. The Reporter on the Buyer side initiates the process by calling the ticketing API (addFaultReport) to raise a ticket with the Supplier. This ticket should include all relevant information that could be gathered at the time and can include the details for the files to upload.

    a. The ticketing API responds with the message ID and status “Pending”.

    b. The ticketing API may also respond with a status “Rejected” if the ticket is missing mandatory information or the Service ID is not valid.

    c. The ticketing API may also respond with a status “Rejected” if the fault detail type is "Service Outage" (TLOS: Total Loss Of Service) without an Appointment Resarvation Key or any other types (Non-TLOS) with an Appointment Reservation Key.

  4. The Supplier stores the ticket information.

  5. Once validated and stored, a notification is sent to the Buyer saying that the ticket status is “Accepted” and has been successfully created. This notification also includes the maintainerFaultReference, which is used along with the buyerFaultReference to identify the ongoing fault. Please note the change from ‘Pending’ to ‘Accepted’ is almost instant if no issues are identified.

  6. At this point the Suppliers Triage is performed on the Service and the fault details are confirmed to the Buyer in the Triage section of the XML using the NotifyFaultReportUpdate. If a fault is found on the Suppliers network, it continues in the Workflow.

  7. When there is more information available, the Supplier can add this information to the ticket. A notification will be sent to the Buyer’s notification endpoint containing a full update using the notifyFaultReportUpdate API.

  8. If the Reporter finds more information, they too can add it using the amendFaultReport API. The Buyer will get a confirmation message for each amendment received by the Supplier.

  9. The Supplier continues to update the Buyer with ticket progress until resolved.

  10. When the ticket is deemed resolved, Supplier will update the ticket status to “Resolved”.

  11. The Buyer should respond with a resolveResponse either accepting or rejecting the solution. If the resolution is rejected, the ticket will be re-opened with status “Re-Opened”.

  12. Once confirmed ‘Resolved’ the ticket can be closed.

  13. If no reply is received from the Buyer after a fault is resolved for 48 hours, then the fault status is changed to ‘Closed’ and it is automatically Accepted from the Suppliers standpoint.

Contacting the Customer

If the Supplier needs more information from either the Buyer or the Buyer’s End User the Ticket is put into a ‘on-hold’ status that will pause the SLA. The reasons for pausing are only when delays are out of the Suppliers hands.

To contact the Buyer’s End User, the Suppliers NOC (Network Operational Centre) team makes the appointment, they would call the Customer and make arrangements if a site visit is needed. They follow the process of leaving a message if possible and a further two call attempts. Once the information is received or the appointment is booked the SLA can be aligned to start again and the Ticket status will be moved back to ‘In Progress’.

Accessing the API

The API is accessed via HTTPS. Calls are made by POST, sending XML as the HTTP body.

Messages are exchanged using SOAP exchanges over HTTPS POST, where the request is in the POST body and the response is in the HTTP response body. Messages are encapsulated in a SOAP envelope using Document/Literal style following WS-Basic Profile 1.0.

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

        <soap:Body>

             ... single request or response element goes here ...

        </soap:Body>

    </soap:Envelope>

Authentication

Authentication is by means of HTTPS client certificate. It is also restricted to pre-agreed source IP addresses.

Certificate

Security Scheme Type: mutualTLS

Integration Environments

CityFibre provides two pre-production environments for the Buyer to integrate with, to allow the Buyer to test the API endpoint before going live.

Below are the details for these environments:

CFSIT: https://api-gw.cityfibre.com:41223/cfsit/api2

CFStaging: https://api-gw.cityfibre.com:41223/cfstaging/api2

Production: https://api-gw.cityfibre.com:41223/prod/api2

Ticketing Notification End Point

Buyer must provide the endpoint to receive Ticket update notifications.

Closure Code Reference

Code Description
FR Fault Resolved
FNR Fault Not Resolved
HAZ Site Unsafe
NA No access
NAPUV No Access Possible Hazard
ASQ Sales Querie
NDT No dial tone
UNF Unforseen Circumstance e.g. Asbsetos
MBORC Matters Beyond Resonable Control
FTA Failed to Attend
SREQ Service Request

Appointments

The buyer can query appointment availability, reserve an appointment and include the reservation key in the order request. If this is not done, the order will go into a waiting state and not progress, the buyer will need to reserve an appointment and then amend the order to include the appointment reservation key before the order can complete. Reappoint is an additional query and reserve, then an amend with the new CAMS id on the appointment reservation key field.

Appointing flow

Where the ticketing flow says "get appointment info" this flow describes all the appointment related steps.

AppointingDiagram
AppointingDiagram

Query Appointment Availability

To check the availability for an appointment on a given location, timeframe, and product.

The buyer should send a request containing a UPRN.

The seller is then going to respond with detailed information about available appointment slots.

SecurityCertificate
Request
Request Body schema: application/xml
required
object (message)

The meta-data of the request. It includes information regarding the message UUID, transaction ID and the sent timestamp

required
object (buyer)

The Service Provider who consumes the service is the buyer

required
object (seller)

the Active Network Operator who provides the service is the seller

addressKey
required
string (addressKey) <= 63 characters

Unique identifier of the address (UPRN)

appointmentsFrom
required
string <date> <= 10 characters

Appointments in the future from this date

required
Order (object) or Fault (object) (appointmentType)
cfh:productName
required
string <= 254 characters

Name of the Product

cfh:reappointment
string

Indicates whether the appointment is reappointing a previous appointment

cfh:projectReference
string <= 80 characters
Responses
200

Appointment Availability Response

400

Failed XML Schema Validation

401

Unauthorized

403

Unauthenticated

post/queryAppointmentAvailability
Request samples
application/xml
<queryAppointmentAvailabilityRequest xmlns="http://www.niccstandards.org.uk/ala_1.0.xsd" xmlns:cfh="http://www.cityfibre.com/ala/ext1">
  <message>
    <messageId>b68b2cf4-475e-11e1-a92e-fb2ff6467c99</messageId>
    <correlationId>bac72cfa-475e-11e1-a92e-fb2ff6467c99</correlationId>
    <sentAt>2012-01-20T18:30:43Z</sentAt>
  </message>
  <buyer>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
  </buyer>
  <seller>
    <sellerIdentifier>CITYFIBRE</sellerIdentifier>
  </seller>
  <addressKey>10002491172</addressKey>
  <appointmentsFrom>2017-10-18</appointmentsFrom>
  <appointmentType>
    <fault/>
  </appointmentType>
  <cfh:productName>ftthl2r</cfh:productName>
  <cfh:reappointment>false</cfh:reappointment>
</queryAppointmentAvailabilityRequest>
Response samples
application/xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <queryAppointmentAvailabilityResponse xmlns="http://www.niccstandards.org.uk/ala_1.0.xsd" xmlns:cfh="http://www.cityfibre.com/ala/ext1">
      <message>
        <messageId>bf1efe1f-f5fc-47e7-9d53-d2b16529aa4c</messageId>
        <correlationId>bac72cfa-475e-11e1-a92e-fb2ff6467c99</correlationId>
        <sentAt>2022-05-18T11:23:07.710Z</sentAt>
      </message>
      <buyer>
        <buyerIdentifier>SPDEV1</buyerIdentifier>
      </buyer>
      <seller>
        <sellerIdentifier>CITYFIBRE</sellerIdentifier>
      </seller>
      <queryAppointmentAvailabilityAccepted>
        <appointmentSlots></appointmentSlots>
      </queryAppointmentAvailabilityAccepted>
    </queryAppointmentAvailabilityResponse>
  </soap:Body>
</soap:Envelope>

Reserve Appointment

In order to reserve an appointment, the buyer should provide the UPRN, product and the appointment slot that they desire to the seller.

SecurityCertificate
Request
Request Body schema: application/xml
required
object (message)

The meta-data of the request. It includes information regarding the message UUID, transaction ID and the sent timestamp

required
object (buyer)

The Service Provider who consumes the service is the buyer

required
object (seller)

the Active Network Operator who provides the service is the seller

required
object (appointmentSlot)

Represents the appointment slot details (date, start time, end time)

required
Order (object) or Fault (object) (appointmentType)
cfh:productName
required
string <= 254 characters

This is the product name

cfh:addressKey
required
string <= 254 characters

The address key (UPRN)

cfh:reappointment
string

Indicates whether the appointment is reappointing a previous appointment

cfh:projectReference
string <= 80 characters
Responses
200

Reserve Appointment Response

400

Failed XML Schema Validation

401

Unauthorized

403

Unauthenticated

post/reserveAppointment
Request samples
application/xml
<reserveAppointmentRequest xmlns="http://www.niccstandards.org.uk/ala_1.0.xsd" xmlns:cfh="http://www.cityfibre.com/ala/ext1">
  <message>
    <messageId>b68b2cf4-475e-11e1-a92e-fb2ff6467c99</messageId>
    <correlationId>bac72cfa-475e-11e1-a92e-fb2ff6467c99</correlationId>
    <sentAt>2012-01-20T18:30:43Z</sentAt>
  </message>
  <buyer>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
  </buyer>
  <seller>
    <sellerIdentifier>CITYFIBRE</sellerIdentifier>
  </seller>
  <appointmentSlot>
    <appointmentDate>2012-01-20</appointmentDate>
    <appointmentStartTime>08:00</appointmentStartTime>
    <appointmentEndTime>13:00</appointmentEndTime>
  </appointmentSlot>
  <appointmentType>
    <fault/>
  </appointmentType>
  <cfh:productName>ftthl2r</cfh:productName>
  <cfh:addressKey>123456789012</cfh:addressKey>
  <cfh:reappointment>false</cfh:reappointment>
</reserveAppointmentRequest>
Response samples
application/xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <reserveAppointmentResponse xmlns="http://www.niccstandards.org.uk/ala_1.0.xsd" xmlns:cfh="http://www.cityfibre.com/ala/ext1">
      <message>
        <messageId>c6d0b303-625a-4ee3-ab53-5e616d728755</messageId>
        <correlationId>bac72cfa-475e-11e1-a92e-fb2ff6467c99</correlationId>
        <sentAt>2022-05-20T09:58:23.439Z</sentAt>
      </message>
      <buyer>
        <buyerIdentifier>SPDEV1</buyerIdentifier>
      </buyer>
      <seller>
        <sellerIdentifier>CITYFIBRE</sellerIdentifier>
      </seller>
      <reserveAppointmentAccepted>
        <appointment>
          <appointmentDate>2022-05-24</appointmentDate>
          <appointmentStartTime>08:00</appointmentStartTime>
          <appointmentEndTime>13:00</appointmentEndTime>
          <appointmentReservationKey>EI7PBRU6TL8KN1YNGO8ICEUI0UDFE9M8</appointmentReservationKey>
          <appointmentReservationValidUntil>2022-05-20T21:58:26.822Z</appointmentReservationValidUntil>
        </appointment>
      </reserveAppointmentAccepted>
    </reserveAppointmentResponse>
  </soap:Body>
</soap:Envelope>

Fault Report

Add a fault report

Creates a new fault Report.

SecurityCertificate
Request
Request Body schema: application/xml
apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

object (contactDetails)
object (contactDetails)
serviceAffected
required
string (serviceAffected) .*\S.*

The service that is affected by the issue

buyerFaultReference
required
string (buyerReference) <= 36 characters .*\S.*

Reference of the buyer

maintainerFaultReference
string (maintainerReference) <= 36 characters

Reference of any incident unclosed on this service, which was opened by the buyer

parentFaultReference
string (parentReference) <= 36 characters

The buyer’s reference for a pre-existing related fault (if present)

object (faultDetails)
object (appointment)
priorityLevel
integer (priorityLevel)

The priority level

errorMessage
object (errorMessage) <= 36 characters

Error Message

Array of objects (Updates)
Array of objects (attachments)
Responses
201

The Fault Report has been received and is pending processing

400

A received fault report has been rejected by the maintainer

401

Unauthorized

403

A received fault report has been rejected by the appointment validator

500

Internal Server Error (Broken XML)

post/addFaultReport
Request samples
application/xml
<addFaultReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>SP-00001</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S21709</serviceAffected>
    <buyerFaultReference>MPTEST-ABC123-15</buyerFaultReference>
    <maintainerFaultReference>CS0005727</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Second Test - E2E Ticketing API -> ServiceNow</description>
        <type>Customer Reported Problem</type>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Yes</siteAccessDetails>
        <siteAccessContactDetails>
            <name>Joe</name>
            <phone>1234</phone>
            <email>joe.smith@example.com</email>
        </siteAccessContactDetails>
        <triageComplete>true</triageComplete>
        <triageFindings>Triage report complete - details follow: ...</triageFindings>
    </faultDetails>
    <appointment>
        <appointmentDate>2018-06-09</appointmentDateTime>
        <appointmentStartTime>12:00</appointmentStartTime>
        <appointmentEndTime>13:00</appointmentEndTime>
        <appointmentReservationKey>1234567</appointmentReservationKey>
    </appointment>
    <priorityLevel>1</priorityLevel>
    <errorMessage>Some failure</errorMessage>
</addFaultReport>
Response samples
application/xml
<receivedFaultReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <status>pending</status>
    <responseCode>201</responseCode>
</receivedFaultReport>

Amend a fault report

Amend a Fault Report.

SecurityCertificate
Request
Request Body schema: application/xml
apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

object (contactDetails)
object (contactDetails)
serviceAffected
string (serviceAffected)

The service that is affected by the issue

buyerFaultReference
required
string (buyerReference) <= 36 characters .*\S.*

Reference of the buyer

maintainerFaultReference
string (maintainerReference) <= 36 characters

Reference of any incident unclosed on this service, which was opened by the buyer

parentFaultReference
string (parentReference) <= 36 characters

The buyer’s reference for a pre-existing related fault (if present)

object (faultDetails)
object (appointment)
priorityLevel
integer (priorityLevel)

The priority level

object (comment)

Comment only records most recent comment, responsibility for comment history lies outside of Ticketing API. Only required if the buyer has made a comment in this amendment.

Array of objects (Updates)
Array of objects (attachments)
Responses
200

Fault Report has been received and is processing

400

Amend Fault Report has been rejected due to an error

401

Unauthorized

403

Unauthenticated

500

Internal Server Error (Broken XML)

post/amendFaultReport
Request samples
application/xml
<amendFaultReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>TEST</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>SP-00002</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>MPTEST-A101</buyerFaultReference>
    <maintainerFaultReference>CS0005727</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Comments should be appended to the comment list.
        </description>
        <type>Fault</type>
        <status>accepted</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <name>Joe</name>
            <phone>1234</phone>
            <email>joe.smith@example.com</email>
        </siteAccessContactDetails>
        <triageComplete>true</triageComplete>
        <triageFindings>Triage report complete - details follow: ...</triageFindings>
    </faultDetails>
    <appointment>
        <appointmentDate>2018-06-09</appointmentDateTime>
        <appointmentStartTime>12:00</appointmentStartTime>
        <appointmentEndTime>13:00</appointmentEndTime>
        <appointmentReservationKey>1234567</appointmentReservationKey>
    </appointment>
    <priorityLevel>1</priorityLevel>
    <comment>
        <value>We need access to the property. </value>
        <commentedBy>buyer</commentedBy>
        <commentedTime>2018-06-09T15:11:11.0001Z</commentedTime>
    </comment>
</amendFaultReport>
Response samples
application/xml
<receivedAmendFaultReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00002</messageId>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <status>accepted</status>
    <responseCode>200</responseCode>
</receivedAmendFaultReport>

Resolve Response

Report the response

Reporting an Accept or Reject status from the Fault Report.

SecurityCertificate
Request
Request Body schema: application/xml
apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

resolveAccepted
boolean (resolveAccepted)

Reject or Accept the status

maintainerFaultReference
string (maintainerReference) <= 36 characters

Reference of any incident unclosed on this service, which was opened by the buyer

buyerFaultReference
required
string (buyerReference) <= 36 characters .*\S.*

Reference of the buyer

rejectionReason
string (rejectionReason) <= 36 characters

Reason for rejection

Responses
200

Resolve Response Received

400

Resolve Response has been rejected due to an error

401

Unauthorized

403

Unauthenticated

500

Internal Server Error (Broken XML)

post/resolveResponse
Request samples
application/xml
<resolveResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>TEST</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00004</messageId>
    <resolveAccepted>true</resolveAccepted>
    <buyerFaultReference>MP-PR-004</buyerFaultReference>
    <maintainerFaultReference>CS0140872</maintainerFaultReference>
</resolveResponse>
Response samples
application/xml
<receivedResolvedResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00004</messageId>
    <responseCode>200</responseCode>
</receivedResolvedResponse>

Request Update

Request fault report update

Request an update from the Supplier.

SecurityCertificate
Request
Request Body schema: application/xml
apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

maintainerFaultReference
required
string (maintainerReference) <= 36 characters .*\S.*

Reference of any incident unclosed on this service, which was opened by the buyer

buyerFaultReference
required
string (buyerReference) <= 36 characters .*\S.*

Reference of the buyer

Responses
200

Request Fault Report Update Response

400

Request Fault Report Update has been rejected due to an error

401

Unauthorized

403

Unauthenticated

500

Internal Server Error (Broken XML)

post/requestFaultReportUpdate
Request samples
application/xml
<requestFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="../faultReport.xsd">
  <apiVersion>1.0</apiVersion>
  <buyerIdentifier>SPDEV1</buyerIdentifier>
  <sentAt>2018-05-16T12:01:00Z</sentAt>
  <messageId>SP-00001</messageId>
  <maintainerFaultReference>TIC-000111</maintainerFaultReference>
  <buyerFaultReference>SP-123ABC</buyerFaultReference>
</requestFaultReportUpdate>
Response samples
application/xml
<receivedRequestFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

FaultReport

Notify Fault Report AcceptedWebhook

Update Buyer on whether the fault report has been accepted

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatus)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../faultReport.xsd">
      <apiVersion>1.0</apiVersion>
      <buyerIdentifier>SPDEV1</buyerIdentifier>
      <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
      <messageId>CF-00001</messageId>
      <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
      <reporterContactDetails>
          <name>Joe</name>
          <phone>1234</phone>
          <email>joe.smith@example.com</email>
      </reporterContactDetails>
      <endUserContactDetails>
          <phone>1234</phone>
          <email>rp@example.com</email>
      </endUserContactDetails>
      <serviceAffected>S18650</serviceAffected>
      <buyerFaultReference>SP-123ABC</buyerFaultReference>
      <maintainerFaultReference>CF-XYZZY</maintainerFaultReference>
      <parentFaultReference>SP-456XYZ</parentFaultReference>
      <faultDetails>
          <description>Initial fault description goes here. Updates will be appended.</description>
          <type>Fault</type>
          <status>accepted</status>
          <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
          <faultLocation>
              500 Avebury Boulevard,
              Milton Keynes
              MK1 3XX
          </faultLocation>
          <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
          <siteAccessContactDetails>
              <phone>12345</phone>
          </siteAccessContactDetails>
      </faultDetails>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Fault Report CancelledWebhook

Update Buyer when a fault report is cancelled

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatus)
required
Array of objects (Updates)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00002</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Updates should be appended to the updates list.
        </description>
        <type>Fault</type>
        <status>cancelled</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Cancelled</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
        </update>
    </updates>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Fault Report ClosedWebhook

Update Buyer when a fault report is closed

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

One of:
apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatus)
required
Array of objects (Updates)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00002</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Updates should be appended to the updates list.
        </description>
        <type>Fault</type>
        <status>closed</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Added image.jpg</description>
            <updatedBy>buyer</updatedBy>
            <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
        </update>
        <update>
            <description>Resolved - fault fixed.</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T16:11:11.0001Z</updatedTime>
        </update>
        <update>
            <description>Closed - buyer accepted resolution.</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T17:11:11.0001Z</updatedTime>
        </update>
    </updates>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Fault Report In ProgressWebhook

Update Buyer when progress has been started on a fault report

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatus)
required
Array of objects (Updates)
Array of objects
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>CF-00003</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Updates should be appended to the updates list.
        </description>
        <type>Fault</type>
        <status>in-progress</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Added image.jpg</description>
            <updatedBy>buyer</updatedBy>
            <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
        </update>
    </updates>
    <appointments>
        <appointment>
            <appointmentReservationKey>1234568</appointmentReservationKey>
            <appointmentDate>2012-01-20</appointmentDate>
            <appointmentStartTime>08:00</appointmentStartTime>
            <appointmentEndTime>13:00</appointmentEndTime>
        </appointment>
    </appointments>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Fault Report On HoldWebhook

Update Buyer if a fault report is put on hold

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
required
Array of objects (Updates)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../faultReport.xsd">
  <apiVersion>1.0</apiVersion>
  <buyerIdentifier>SPDEV1</buyerIdentifier>
  <messageId>CF-00003</messageId>
  <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
  <reporterContactDetails>
      <name>Matt</name>
      <phone>1234</phone>
      <email>matt.porter@cityfibre.com</email>
  </reporterContactDetails>
  <endUserContactDetails>
      <phone>1234</phone>
      <email>rp@example.com</email>
  </endUserContactDetails>
  <serviceAffected>S18650</serviceAffected>
  <buyerFaultReference>SP-123ABC</buyerFaultReference>
  <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
  <parentFaultReference>SP-456XYZ</parentFaultReference>
  <faultDetails>
      <description>Initial fault description goes here.
          Updates should be appended to the updates list.
      </description>
      <type>Fault</type>
      <status>on-hold</status>
      <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
      <faultLocation>
          500 Avebury Boulevard,
          Milton Keynes
          MK1 3XX
      </faultLocation>
      <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
      <siteAccessContactDetails>
          <phone>12345</phone>
      </siteAccessContactDetails>
  </faultDetails>
  <updates>
    <update>
      <description>Created</description>
      <updatedBy>Buyer</updatedBy>
      <updatedTime>2018-05-16T12:01:00Z</updatedTime>
    </update>
    <update>
      <description>On-hold</description>
      <updatedBy>Seller</updatedBy>
      <updatedTime>2018-05-16T12:01:00Z</updatedTime>
    </update>
  </updates>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Fault Report RejectedWebhook

Update Buyer when and why the fault report is rejected

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Updated

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatusReason)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>CF-00001</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference></maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here. Updates will be appended.</description>
        <type>Fault</type>
        <status>rejected</status>
        <statusReason>Missing data</statusReason>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Fault report rejected, not enough information</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T13:15:17.0001Z</updatedTime>
        </update>
    </updates>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>400</responseCode>
    <errorMessage>{"maintainerFaultReference": "No workflow found with that reference"}</errorMessage>
</receivedRequestFaultReportUpdate>

Notify Fault Report ResolvedWebhook

Update Buyer on the resolution of a ticket

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsStatusReason)
required
Array of objects (Updates)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>CF-00004</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Updates should be appended to the updates list.
        </description>
        <type>Fault</type>
        <status>resolved</status>
        <statusReason>Fault fixed at user end.</statusReason>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Added image.jpg</description>
            <updatedBy>buyer</updatedBy>
            <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
        </update>
        <update>
            <description>Resolved - fault fixed.</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T16:11:11.0001Z</updatedTime>
        </update>
        <update>
            <description>Closed - buyer accepted resolution.</description>
            <updatedBy>seller</updatedBy>
            <updatedTime>2018-06-09T17:11:11.0001Z</updatedTime>
        </update>
    </updates>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Appointment

Notify Appointment CancelledWebhook

Update Buyer if an appointment gets cancelled

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
required
Array of objects (Updates)
Array of objects
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../faultReport.xsd">
  <apiVersion>1.0</apiVersion>
  <buyerIdentifier>SPDEV1</buyerIdentifier>
  <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
  <messageId>CF-00003</messageId>
  <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
  <reporterContactDetails>
    <name>Joe</name>
    <phone>1234</phone>
    <email>joe.smith@example.com</email>
  </reporterContactDetails>
  <endUserContactDetails>
    <phone>1234</phone>
    <email>rp@example.com</email>
  </endUserContactDetails>
  <serviceAffected>S18650</serviceAffected>
  <buyerFaultReference>SP-123ABC</buyerFaultReference>
  <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
  <parentFaultReference>SP-456XYZ</parentFaultReference>
  <faultDetails>
    <description>Initial fault description goes here.
      Updates should be appended to the updates list.
    </description>
    <type>Fault</type>
    <status>in-progress</status>
    <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
    <faultLocation>
      500 Avebury Boulevard,
      Milton Keynes
      MK1 3XX
    </faultLocation>
    <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
    <siteAccessContactDetails>
      <phone>12345</phone>
    </siteAccessContactDetails>
  </faultDetails>
  <updates>
    <update>
      <description>Added image.jpg</description>
      <updatedBy>buyer</updatedBy>
      <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
    </update>
  </updates>
  <appointments>
    <appointment>
      <appointmentReservationKey>1234568</appointmentReservationKey>
      <appointmentDate>2012-01-20</appointmentDate>
      <appointmentStartTime>08:00</appointmentStartTime>
      <appointmentEndTime>13:00</appointmentEndTime>
      <appointmentConfirmationStatus>Confirmed</appointmentConfirmationStatus>
      <appointmentCancelled>true</appointmentCancelled>
    </appointment>
  </appointments>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Appointment CompletedWebhook

Update Buyer when and how an appointment has been completed

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
required
Array of objects (Updates)
Array of objects
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../faultReport.xsd">
  <apiVersion>1.0</apiVersion>
  <buyerIdentifier>SPDEV1</buyerIdentifier>
  <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
  <messageId>CF-00003</messageId>
  <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
  <reporterContactDetails>
    <name>Joe</name>
    <phone>1234</phone>
    <email>joe.smith@example.com</email>
  </reporterContactDetails>
  <endUserContactDetails>
    <phone>1234</phone>
    <email>rp@example.com</email>
  </endUserContactDetails>
  <serviceAffected>S18650</serviceAffected>
  <buyerFaultReference>SP-123ABC</buyerFaultReference>
  <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
  <parentFaultReference>SP-456XYZ</parentFaultReference>
  <faultDetails>
    <description>Initial fault description goes here.
      Updates should be appended to the updates list.
    </description>
    <type>Fault</type>
    <status>in-progress</status>
    <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
    <faultLocation>
      500 Avebury Boulevard,
      Milton Keynes
      MK1 3XX
    </faultLocation>
    <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
    <siteAccessContactDetails>
      <phone>12345</phone>
    </siteAccessContactDetails>
  </faultDetails>
  <updates>
    <update>
      <description>Added image.jpg</description>
      <updatedBy>buyer</updatedBy>
      <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
    </update>
  </updates>
  <appointments>
    <appointment>
      <appointmentReservationKey>1234568</appointmentReservationKey>
      <appointmentDate>2012-01-20</appointmentDate>
      <appointmentStartTime>08:00</appointmentStartTime>
      <appointmentEndTime>13:00</appointmentEndTime>
      <appointmentConfirmationStatus>Confirmed</appointmentConfirmationStatus>
      <appointmentClosureCode>FR</appointmentClosureCode>
      <appointmentCancelled>false</appointmentCancelled>
    </appointment>
  </appointments>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Appointment ConfirmationWebhook

Update Buyer on confirmation status of appointment

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
required
Array of objects (Updates)
Array of objects
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../faultReport.xsd">
  <apiVersion>1.0</apiVersion>
  <buyerIdentifier>SPDEV1</buyerIdentifier>
  <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
  <messageId>CF-00003</messageId>
  <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
  <reporterContactDetails>
    <name>Joe</name>
    <phone>1234</phone>
    <email>joe.smith@example.com</email>
  </reporterContactDetails>
  <endUserContactDetails>
    <phone>1234</phone>
    <email>rp@example.com</email>
  </endUserContactDetails>
  <serviceAffected>S18650</serviceAffected>
  <buyerFaultReference>SP-123ABC</buyerFaultReference>
  <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
  <parentFaultReference>SP-456XYZ</parentFaultReference>
  <faultDetails>
    <description>Initial fault description goes here.
      Updates should be appended to the updates list.
    </description>
    <type>Fault</type>
    <status>in-progress</status>
    <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
    <faultLocation>
      500 Avebury Boulevard,
      Milton Keynes
      MK1 3XX
    </faultLocation>
    <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
    <siteAccessContactDetails>
      <phone>12345</phone>
    </siteAccessContactDetails>
  </faultDetails>
  <updates>
    <update>
      <description>Added image.jpg</description>
      <updatedBy>buyer</updatedBy>
      <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
    </update>
  </updates>
  <appointments>
    <appointment>
      <appointmentReservationKey>1234568</appointmentReservationKey>
      <appointmentDate>2012-01-20</appointmentDate>
      <appointmentStartTime>08:00</appointmentStartTime>
      <appointmentEndTime>13:00</appointmentEndTime>
      <appointmentConfirmationStatus>Confirmed or Failed</appointmentConfirmationStatus>
    </appointment>
  </appointments>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Notify Appointment MissedWebhook

Update Buyer when and why an appointment is missed

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
required
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPBUYERID</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>CF-00001</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>J Doe</name>
        <phone>1234</phone>
        <email>jdoe@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>jdoe@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>CF-XYZZY</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here. Updates will be appended.</description>
        <type>Fault</type>
        <status>accepted</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
        <missedAppointment>
            <appointmentReservationKey>1234568</appointmentReservationKey>
            <appointmentDate>2012-01-20</appointmentDate>
            <appointmentStartTime>08:00</appointmentStartTime>
            <appointmentEndTime>13:00</appointmentEndTime>
            <sellerMissedAppointment>N</sellerMissedAppointment>
            <Amended>N</Amended>
            <Cancelled>N</Cancelled>
            <endUserMissedAppointment>N</endUserMissedAppointment>
            <endUserPreAgreed>N</endUserPreAgreed>
            <MBORC>N</MBORC>
        </missedAppointment>
    </faultDetails>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

Amendment

Notify Fault Report AmendedWebhook

Update Buyer on any amendments made to the fault report

SecurityCertificate
Request
Request Body schema: application/xml

Notify Fault Report Update

apiVersion
required
string (apiVersion) <= 36 characters .*\S.*

The API version

buyerIdentifier
required
string (buyer-2) <= 36 characters

Unique identifier of the buyer

sentAt
string <date-time> (sentAt) <= 25 characters

The time this message was sent out. ISO 8601 date format

messageId
required
string (messageId) <= 36 characters .*\S.*

A message ID for correlation between requests and your response.

reportDateTime
required
string <date-time> (reportDateTime) <= 25 characters

The time this report was sent in. ISO 8601 date format

required
object (contactDetails)
required
object (contactDetails)
serviceAffected
required
string.*\S.*

The service that is affected by the issue

buyerFaultReference
required
string.*\S.*

The fault reference used by the buyer. Used to identify the fault, so must be unique.

maintainerFaultReference
required
string

The supplier’s fault reference. Only populated if Ticket is ‘Accepted’

parentFaultReference
required
string

The buyer’s reference for a pre-existing related fault (if present)

required
object (faultDetailsMissedAppointment)
required
Array of objects (Updates)
object (comment)

Comment only records most recent comment, responsibility for comment history lies outside of Ticketing API. Only required if the seller has made a comment in this amendment.

Responses
200

Notify Fault Report Update Response

Request samples
application/xml
<notifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-06-09T11:15:17.0001Z</sentAt>
    <messageId>CF-00002</messageId>
    <reportDateTime>2018-06-09T11:15:17.0001Z</reportDateTime>
    <reporterContactDetails>
        <name>Joe</name>
        <phone>1234</phone>
        <email>joe.smith@example.com</email>
    </reporterContactDetails>
    <endUserContactDetails>
        <phone>1234</phone>
        <email>rp@example.com</email>
    </endUserContactDetails>
    <serviceAffected>S18650</serviceAffected>
    <buyerFaultReference>SP-123ABC</buyerFaultReference>
    <maintainerFaultReference>(Not in report; only after creation)</maintainerFaultReference>
    <parentFaultReference>SP-456XYZ</parentFaultReference>
    <faultDetails>
        <description>Initial fault description goes here.
            Updates should be appended to the updates list.
        </description>
        <type>Fault</type>
        <status>accepted</status>
        <faultStartTime>2018-05-16T12:01:00Z</faultStartTime>
        <faultLocation>
            500 Avebury Boulevard,
            Milton Keynes
            MK1 3XX
        </faultLocation>
        <siteAccessDetails>Access 24/7, call 0771234123.</siteAccessDetails>
        <siteAccessContactDetails>
            <phone>12345</phone>
        </siteAccessContactDetails>
    </faultDetails>
    <updates>
        <update>
            <description>Added image.jpg</description>
            <updatedBy>buyer</updatedBy>
            <updatedTime>2018-06-09T15:11:11.0001Z</updatedTime>
        </update>
    </updates>
    <comment>
        <value> We have a question about the property. </value>
        <commentedBy>seller</commentedBy>
        <commentedTime>2018-06-09T15:11:11.0001Z</commentedTime>
    </comment>
</notifyFaultReportUpdate>
Response samples
application/xml
<receivedNotifyFaultReportUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../faultReport.xsd">
    <apiVersion>1.0</apiVersion>
    <buyerIdentifier>SPDEV1</buyerIdentifier>
    <sentAt>2018-05-16T12:01:00Z</sentAt>
    <messageId>SP-00001</messageId>
    <responseCode>200</responseCode>
</receivedRequestFaultReportUpdate>

XSD File

Get the XSD for the Fault Report

get/faultReport.txt
Request samples
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/" />

    <xs:element name="addFaultReport" type="faultReportType"/>
    <xs:element name="amendFaultReport" type="amendFaultReportType"/>
    <xs:element name="notifyFaultReportUpdate" type="faultReportType"/>
    <xs:element name="requestFaultReportUpdate" type="updateRequestType"/>
    <xs:element name="receivedFaultReport" type="receivedFaultReportType"/>
    <xs:element name="receivedAmendFaultReport" type="receivedFaultReportType"/>
    <xs:element name="resolveResponse" type="resolveResponseType"/>
    <xs:element name="receivedRequestFaultReportUpdate" type="genericResponseType"/>
    <xs:element name="receivedResolvedResponse" type="genericResponseType"/>

    <!-- Used in responses by either the Buyer or Maintainer.
         messageId will echo the message the response refers to.
         The responseCode is as defined in the specification:
          - 2xx success
          - 4xx failure
    -->
    <xs:complexType name="genericResponseType">
        <xs:all>
            <xs:element name="apiVersion" type="xs:string"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier" />
            <xs:element name="sentAt" type="xs:dateTime" />
            <xs:element name="messageId" type="xs:string"/>
            <xs:element name="responseCode" type="xs:integer"/>
            <xs:element minOccurs="0" name="errorMessage" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <!-- Sent by the buyer to request a full update of the fault state
         The response will be a basic "response" element; confirming receipt.
         The update from the maintainer will be asynchronous via notification
    -->
    <xs:complexType name="updateRequestType">
        <xs:all>
            <xs:element name="apiVersion" type="nonEmptyString"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier"/>
            <xs:element name="sentAt" type="xs:dateTime"/>
            <xs:element name="messageId" type="nonEmptyString"/>
            <xs:element name="maintainerFaultReference" type="nonEmptyString"/>
            <xs:element name="buyerFaultReference" type="nonEmptyString"/>
        </xs:all>
    </xs:complexType>



    <!-- Sent from the maintainer to the buyer in response to a new report.
         The messageId will match the received messageId.
    -->
    <xs:complexType name="receivedFaultReportType">
        <xs:all>
            <xs:element name="apiVersion" type="xs:string"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier" />
            <xs:element name="sentAt" type="xs:dateTime" />
            <xs:element maxOccurs="1" name="messageId" type="xs:string"/>
            <xs:element maxOccurs="1" name="buyerFaultReference" type="xs:string"/>
            <xs:element maxOccurs="1" name="status" type="faultStateType" />
            <xs:element maxOccurs="1" name="responseCode" type="xs:integer"/>
            <xs:element maxOccurs="1" minOccurs="0" name="errorMessage" type="xs:string"/>
            <xs:element minOccurs="0" name="attachments" type="attachmentsType"/>
        </xs:all>

    </xs:complexType>

    <!-- Sent from the buyer to the maintainer in response to a "resolved" update
         Acknowledged via a "receivedMessage" response.
         Ticket will be updated asynchronously in response.
    -->
    <xs:complexType name="resolveResponseType">
        <xs:all>
           <xs:element name="apiVersion" type="nonEmptyString"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier"/>
            <xs:element name="sentAt" type="xs:dateTime"/>
            <xs:element name="messageId" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="resolveAccepted" type="xs:boolean"/>
            <xs:element name="buyerFaultReference" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="maintainerFaultReference" type="xs:string"/>
            <xs:element minOccurs="0" name="rejectedReason" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="faultReportType">
        <xs:all>
            <xs:element name="apiVersion" type="nonEmptyString"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier"/>
            <xs:element minOccurs="0" name="sentAt" type="xs:dateTime"/>
            <xs:element name="messageId" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="reportDateTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="reporterContactDetails" type="contactDetailsType"/>
            <xs:element minOccurs="0" name="endUserContactDetails" type="contactDetailsType"/>
            <xs:element name="serviceAffected" type="nonEmptyString"/>
            <xs:element name="buyerFaultReference" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="maintainerFaultReference" type="xs:string"/>
            <xs:element minOccurs="0" name="parentFaultReference" type="xs:string"/>
            <xs:element minOccurs="0" name="faultDetails" type="faultDetailsType"/>
            <xs:element minOccurs="0" name="updates" type="faultReportUpdatesType"/>
            <xs:element minOccurs="0" name="comment" type="commentType"/>
            <xs:element minOccurs="0" name="attachments" type="attachmentsType"/>
            <xs:element minOccurs="0" name="priorityLevel" type="xs:integer"/>
            <xs:element minOccurs="0" name="lateRepairNotification" type="lateRepairNotificationType"/>
            <xs:element minOccurs="0" name="appointment" type="appointmentType"/>
            <xs:element minOccurs="0" name="errorMessage" type="xs:string"/>
            <xs:element minOccurs="0" name="resolveAccepted" type="xs:boolean"/>
        </xs:all>
    </xs:complexType>

    <!-- For an amend, accept fields being left out. If missing, we assume it's unchanged. -->
    <xs:complexType name="amendFaultReportType">
        <xs:all>
            <xs:element name="apiVersion" type="nonEmptyString"/>
            <xs:element name="buyerIdentifier" type="buyerIdentifier"/>
            <xs:element name="sentAt" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="reportDateTime" type="xs:dateTime"/>
            <xs:element name="messageId" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="reporterContactDetails" type="contactDetailsType"/>
            <xs:element minOccurs="0" name="endUserContactDetails" type="contactDetailsType"/>
            <xs:element minOccurs="0" name="serviceAffected" type="xs:string"/>
            <xs:element name="buyerFaultReference" type="nonEmptyString"/>
            <xs:element minOccurs="0" name="maintainerFaultReference" type="xs:string"/>
            <xs:element minOccurs="0" name="parentFaultReference" type="xs:string"/>
            <xs:element minOccurs="0" name="faultDetails" type="amendFaultDetailsType"/>
            <xs:element minOccurs="0" name="updates" type="faultReportUpdatesType"/>
            <xs:element minOccurs="0" name="comment" type="commentType"/>
            <xs:element minOccurs="0" name="attachments" type="attachmentsType"/>
            <xs:element minOccurs="0" name="appointment" type="appointmentType"/>
            <xs:element minOccurs="0" name="priorityLevel" type="xs:integer"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="contactDetailsType">
        <xs:choice maxOccurs="unbounded">
            <xs:element minOccurs="0"  name="name"  type="xs:string"/>
            <xs:element minOccurs="0"  name="phone"  type="xs:string"/>
            <xs:element  minOccurs="0"  name="email"  type="xs:string"/>
        </xs:choice>
    </xs:complexType>

    <xs:complexType name="faultDetailsType">
        <xs:all>
            <xs:element minOccurs="0"  name="description" type="xs:string"/>
            <xs:element name="type" type="nonEmptyString" />
            <xs:element minOccurs="0" name="status" type="faultStateType" />
            <xs:element minOccurs="0" name="statusReason" type="xs:string" />
            <xs:element name="faultStartTime" type="xs:dateTime"/>
            <xs:element name="faultLocation" type="nonEmptyString"/>
            <xs:element name="siteAccessDetails" type="nonEmptyString" />
            <xs:element name="siteAccessContactDetails" type="contactDetailsType" />
            <xs:element name="triageComplete" type="xs:boolean" />
            <xs:element name="triageFindings" type="nonEmptyString" />
            <xs:element minOccurs="0" name="missedAppointment" type="missedAppointmentType"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="amendFaultDetailsType">
        <xs:all>
            <xs:element minOccurs="0" name="description" type="xs:string" />
            <xs:element minOccurs="0" name="type" type="xs:string" />
            <xs:element minOccurs="0" name="status" type="faultStateType" />
            <xs:element minOccurs="0" name="statusReason" type="xs:string" />
            <xs:element minOccurs="0" name="faultStartTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="faultLocation" type="xs:string"/>
            <xs:element minOccurs="0" name="siteAccessDetails" type="xs:string" />
            <xs:element minOccurs="0" name="siteAccessContactDetails" type="contactDetailsType" />
            <xs:element minOccurs="0" name="triageComplete" type="xs:boolean" />
            <xs:element minOccurs="0" name="triageFindings" type="xs:string" />
         </xs:all>
    </xs:complexType>

    <xs:simpleType name="nonEmptyString">
        <xs:restriction base="xs:string">
            <xs:whiteSpace value="collapse"/>
            <xs:pattern value=".*\S.*"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="attachmentsType">
        <xs:sequence>
            <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:all>
                        <xs:element name="filename" type="xs:string"/>
                        <xs:element minOccurs="0" name="url" type="xs:string"/>
                        <xs:element minOccurs="0" name="uploaded" type="xs:boolean"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="faultReportUpdatesType">
        <xs:sequence>
            <xs:element name="update" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:all>
                        <xs:element name="description" type="nonEmptyString"/>
                        <xs:element minOccurs="0" name="updatedBy" type="updatedByType"/>
                        <xs:element minOccurs="0" name="updatedTime" type="xs:dateTime"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="updatedByType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="buyer"/>
            <xs:enumeration value="seller"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="commentType">
        <xs:all>
            <xs:element name="value" type="nonEmptyString"/>
            <xs:element name="commentedBy" type="commentedByType"/>
            <xs:element name="commentedTime" type="xs:dateTime"/>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="commentedByType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="buyer"/>
            <xs:enumeration value="seller"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="faultStateType">
        <xs:restriction base="xs:string">
             <xs:enumeration value="pending"/>
            <xs:enumeration value="rejected"/>
            <xs:enumeration value="accepted"/>
            <xs:enumeration value="open"/>
            <xs:enumeration value="re-opened"/>
            <xs:enumeration value="in-progress"/>
            <xs:enumeration value="resolved"/>
            <xs:enumeration value="closed"/>
            <xs:enumeration value="on-hold"/>
            <xs:enumeration value="cancelled"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Schema for Auto Comp for Repair Missed appointments & Late Repairs -->

    <xs:complexType name="lateRepairNotificationType">
        <xs:all>
            <xs:element minOccurs="0" maxOccurs="1" name="totalDelayInDays" type="totalDelayInDaysType" />
            <xs:element minOccurs="0" maxOccurs="1" name="sellerDelayDays" type="sellerDelayDaysType" />
            <xs:element minOccurs="0" maxOccurs="1" name="nonSellerDelayDays" type="nonSellerDelayDaysType" />
            <xs:element minOccurs="0" maxOccurs="1" name="exclusions" type="exclusionsType" />
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="totalDelayInDaysType">
        <xs:restriction base="xs:integer" />
    </xs:simpleType>

    <xs:simpleType name="sellerDelayDaysType">
        <xs:restriction base="xs:integer" />
    </xs:simpleType>

    <xs:simpleType name="nonSellerDelayDaysType">
        <xs:restriction base="xs:integer" />
    </xs:simpleType>

    <xs:complexType name="exclusionsType">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="exclusion" type="exclusionType" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="exclusionType">
        <xs:all>
            <xs:element minOccurs="1" maxOccurs="1" name="exclusionReason" type="exclusionReasonType" />
            <xs:element minOccurs="1" maxOccurs="1" name="numberOfDays" type="numberOfDaysType" />
            <xs:element minOccurs="1" maxOccurs="1" name="startDateTime" type="startDateTimeType" />
            <xs:element minOccurs="1" maxOccurs="1" name="endDateTime" type="endDateTimeType" />
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="exclusionReasonType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="numberOfDaysType">
        <xs:restriction base="xs:integer" />
    </xs:simpleType>

    <xs:simpleType name="startDateTimeType">
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>

    <xs:simpleType name="endDateTimeType">
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>

    <xs:complexType name="missedAppointmentType">
        <xs:all>
            <xs:element minOccurs="1" maxOccurs="1" name="appointmentReservationKey" type="appointmentReservationKeyType" />
            <xs:element minOccurs="1" maxOccurs="1" name="appointmentDate" type="appointmentDateType" />
            <xs:element minOccurs="1" maxOccurs="1" name="appointmentStartTime" type="appointmentStartTimeType" />
            <xs:element minOccurs="1" maxOccurs="1" name="appointmentEndTime" type="appointmentEndTimeType" />
            <xs:element minOccurs="1" maxOccurs="1" name="sellerMissedAppointment" type="sellerMissedAppointmentType" />
            <xs:element minOccurs="1" maxOccurs="1" name="Amended" type="AmendedType" />
            <xs:element minOccurs="1" maxOccurs="1" name="Cancelled" type="CancelledType" />
            <xs:element minOccurs="1" maxOccurs="1" name="endUserMissedAppointment" type="endUserMissedAppointmentType" />
            <xs:element minOccurs="1" maxOccurs="1" name="endUserPreAgreed" type="endUserPreAgreedType" />
            <xs:element minOccurs="1" maxOccurs="1" name="MBORC" type="MBORCType" />
        </xs:all>
    </xs:complexType>

    <xs:complexType name="appointmentsType">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="appointment" type="appointmentType" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="appointmentType">
        <xs:all>
            <xs:element minOccurs="0" name="appointmentDate" type="appointmentDateType" />
            <xs:element minOccurs="0" name="appointmentStartTime" type="appointmentStartTimeType" />
            <xs:element minOccurs="0" name="appointmentEndTime" type="appointmentEndTimeType" />
            <xs:element name="appointmentReservationKey" type="appointmentReservationKeyType" />
            <xs:element minOccurs="0" name="appointmentConfirmationStatus" type="appointmentConfirmationStatusType" />
            <xs:element minOccurs="0" name="appointmentCancelled" type="appointmentCancelledType" />
            <xs:element minOccurs="0" name="appointmentClosureCode" type="appointmentClosureCodeType" />
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="appointmentConfirmationStatusType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Confirmed"/>
            <xs:enumeration value="Failed"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentCancelledType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentReservationKeyType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36" />
        </xs:restriction>
    </xs:simpleType>

     <xs:simpleType name="appointmentClosureCodeType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentDateType">
        <xs:restriction base="xs:date"/>
    </xs:simpleType>

    <xs:simpleType name="appointmentStartTimeType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentEndTimeType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="sellerMissedAppointmentType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="AmendedType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="CancelledType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="endUserMissedAppointmentType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="endUserPreAgreedType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="MBORCType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="buyerIdentifier">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentDate">
        <xs:restriction base="xs:date"/>
    </xs:simpleType>

    <xs:simpleType name="appointmentStartTime">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentEndTime">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="appointmentReservationKey">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36" />
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

Revision History

Revision history for the Documentation

Ten most recent changes made to these docs

Download full change log here:

get/changeLog.txt
Request samples
curl -X GET "https://api.redocly.com/registry/assets/cityfibre/Ticketing%20API/v1/changeLog.txt"