Examples are available within the API documentation but here are some common end-to-end example KCIs demonstrating full scenarios that suppliers should send to the Fibre Cafe.
Once the supplier receives the order and it meets initial validation rules, it should be acknowledged by sending a KCI with reasonCode ACKNOWLEDGED. Note that suppliers can also respond synchronously with a 201 and ACKNOWLEDGED status, in which case this KCI is not required.
{
"id": "1150e313-3020-49f3-ace3-f8aacfeec4e3",
"sequenceNumber": 1,
"issuedOn": "2024-04-10T09:53:39.144Z",
"reasonCode": "ACKNOWLEDGED",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "ACKNOWLEDGED",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456
}
}Once business rules are complete and the supplier commits to the order, send a KCI with reasonCode COMMITTED. The order status should be IN_PROGRESS and both committedDate and targetDate must be provided. Note that suppliers can also respond synchronously with a 201 and IN_PROGRESS status/dates as above, in which case this KCI is not required.
{
"id": "a7f3c842-9b21-4d15-8e56-3f4a2b8d9c61",
"sequenceNumber": 2,
"issuedOn": "2024-04-10T10:15:22.044Z",
"reasonCode": "COMMITTED",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-15T09:00:00.000Z"
}
}If the order does not meet validation rules, send a KCI with reasonCode ORDER_REJECTED. The order status should be REJECTED and the text field must contain the reason for rejection.
{
"id": "d0a6f175-ce54-7g48-1h89-6i7d5e1g2f94",
"sequenceNumber": 2,
"issuedOn": "2024-04-10T10:20:15.044Z",
"reasonCode": "ORDER_REJECTED",
"text": "Address is not serviceable - no fiber infrastructure available",
"problemCode": "ADDRESS_NOT_SERVICEABLE",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "REJECTED",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456
}
}If there is a problem causing a delay, send a KCI with reasonCode DELAY. The problemCode must be provided and the order status may be updated to HELD.
{
"id": "g3d9i408-fh87-0j71-4k12-9l0g8h4j5i27",
"sequenceNumber": 3,
"issuedOn": "2024-04-11T14:30:00.000Z",
"reasonCode": "DELAY",
"problemCode": "NETWORK_ISSUE",
"text": "Network infrastructure fault being resolved - expected resolution within 48 hours",
"supplierCodes": ["NET-FAULT-001"],
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "HELD",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}Generic update when the order has been updated and none of the other specific reason codes apply.
{
"id": "j6g2l731-ik10-3m04-7n45-2o3j1k7m8l50",
"sequenceNumber": 4,
"issuedOn": "2024-04-12T08:00:00.000Z",
"reasonCode": "UPDATE",
"text": "Order back in progress after issue resolution",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}Supplier has updated the order with additional information for the tenant, such as service characteristics.
{
"id": "k7h3m842-jl21-4n15-8o56-3p4k2l8n9m61",
"sequenceNumber": 5,
"issuedOn": "2024-04-13T11:00:00.000Z",
"reasonCode": "ADDITIONAL",
"text": "Service ID and VLAN details added",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}There is a potential issue or warning that is not (yet) causing a delay.
{
"id": "l8i4n953-km32-5o26-9p67-4q5l3m9o0n72",
"sequenceNumber": 6,
"issuedOn": "2024-04-13T14:00:00.000Z",
"reasonCode": "WARNING",
"problemCode": "SITE_ACCESS_RESTRICTIONS",
"text": "Customer site has restricted access hours - may impact installation timing",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}Tenant must provide additional information by sending an amendment request.
{
"id": "m9j5o064-ln43-6p37-0q78-5r6m4n0p1o83",
"sequenceNumber": 7,
"issuedOn": "2024-04-13T16:00:00.000Z",
"reasonCode": "INFORMATION_REQUIRED",
"text": "Please provide building access code and emergency contact details",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 23456,
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}Tenant must reserve a new appointment and send an amendment request with the new reservation.
{
"id": "n0k6p175-mo54-7q48-1r89-6s7n5o1q2p94",
"sequenceNumber": 8,
"issuedOn": "2024-04-14T09:00:00.000Z",
"reasonCode": "REAPPOINT",
"problemCode": "CUSTOMER_NOT_AVAILABLE",
"text": "Customer was not present at scheduled appointment - please rebook",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-17T09:00:00.000Z"
}
}Supplier has arranged a new appointment with the end customer directly.
{
"id": "o1l7q286-np65-8r59-2s90-7t8o6p2r3q05",
"sequenceNumber": 9,
"issuedOn": "2024-04-14T15:00:00.000Z",
"reasonCode": "REAPPOINTED",
"text": "New appointment arranged with customer for April 18th",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentTimeslot": {
"startDateTime": "2024-04-18T09:00:00.000Z",
"endDateTime": "2024-04-18T13:00:00.000Z"
},
"appointmentReservationReference": "APT-12345",
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-18T13:00:00.000Z"
}
}Supplier has accepted and applied the tenant requested order amendment.
{
"id": "p2m8r397-oq76-9s60-3t01-8u9p7q3s4r16",
"sequenceNumber": 10,
"issuedOn": "2024-04-14T16:30:00.000Z",
"reasonCode": "AMENDED",
"text": "Building access code updated",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentTimeslot": {
"startDateTime": "2024-04-18T09:00:00.000Z",
"endDateTime": "2024-04-18T13:00:00.000Z"
},
"appointmentReservationReference": "APT-12345",
"notes": "Building access code: 1234",
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-18T13:00:00.000Z",
"serviceOrderAmendmentId": 12346
}
}Tenant has previously sent an amendment request that has been rejected.
{
"id": "q3n9s408-pr87-0t71-4u12-9v0q8r4t5s27",
"sequenceNumber": 11,
"issuedOn": "2024-04-14T17:00:00.000Z",
"reasonCode": "AMENDMENT_REJECTED",
"text": "Cannot change appointment - too close to scheduled date",
"problemCode": "AMENDMENT_NOT_POSSIBLE",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "IN_PROGRESS",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"appointmentTimeslot": {
"startDateTime": "2024-04-18T09:00:00.000Z",
"endDateTime": "2024-04-18T13:00:00.000Z"
},
"appointmentReservationReference": "APT-12345",
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-18T13:00:00.000Z",
"serviceOrderAmendmentId": 12347
}
}Supplier has cancelled the order. Include the cancellation reference if the cancellation was requested by the tenant.
{
"id": "r4o0t519-qs98-1u82-5v23-0w1r9s5u6t38",
"sequenceNumber": 12,
"issuedOn": "2024-04-14T18:00:00.000Z",
"reasonCode": "CANCELLED",
"text": "Order cancelled as requested by tenant",
"problemCode": "CUSTOMER_REQUESTED_CANCELLATION",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "CANCELLED",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"committedDate": "2024-04-15T09:00:00.000Z",
"serviceOrderCancellationId": 12348
}
}Tenant has previously sent a cancellation request that has been rejected.
{
"id": "t6q2v731-su10-3w04-7x45-2y3t1u7w8v50",
"sequenceNumber": 14,
"issuedOn": "2024-04-15T08:00:00.000Z",
"reasonCode": "CANCELLATION_REJECTED",
"text": "Cannot cancel - installation already completed",
"problemCode": "CANCELLATION_NOT_POSSIBLE",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "COMPLETED",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"committedDate": "2024-04-15T09:00:00.000Z",
"serviceOrderCancellationId": 12349
}
}The order has been completed successfully.
{
"id": "u7r3w842-tv21-4x15-8y56-3z4u2v8x9w61",
"sequenceNumber": 15,
"issuedOn": "2024-04-18T14:00:00.000Z",
"reasonCode": "COMPLETED",
"text": "Installation completed successfully",
"provideServiceOrder": {
"id": 12345,
"tenant": "TENANT1",
"supplierOrderReference": "FC123",
"status": "COMPLETED",
"address": {
"id": "10002429380",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1"
},
{
"name": "SERVICE_ID",
"value": "S12345"
},
{
"name": "SERVICE_VLAN_ID",
"value": "100"
},
{
"name": "CTAG",
"value": "200"
},
{
"name": "ONT_SERIAL_NUMBER",
"value": "ONT123456789"
}
]
},
"primaryContact": {
"name": "John Smith",
"phoneNumber": "01234 567890"
},
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-18T13:00:00.000Z"
}
}The order has been partially completed - some services were delivered but not all.
{
"id": "x0u6z175-wy54-7a48-1b89-6c7x5y1a2z94",
"sequenceNumber": 16,
"issuedOn": "2024-04-18T14:30:00.000Z",
"reasonCode": "COMPLETED",
"text": "Installation completed but limited to lower line profile due to line conditions",
"problemCode": "LINE_QUALITY_ISSUE",
"provideServiceOrder": {
"id": 12347,
"tenant": "TENANT1",
"supplierOrderReference": "FC125",
"status": "PARTIAL",
"address": {
"id": "10002429381",
"type": "UPRN"
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "FTTP"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "2"
},
{
"name": "SERVICE_ID",
"value": "S12346"
},
{
"name": "SERVICE_VLAN_ID",
"value": "101"
},
{
"name": "CTAG",
"value": "201"
},
{
"name": "ONT_SERIAL_NUMBER",
"value": "ONT987654321"
}
]
},
"primaryContact": {
"name": "Sarah Johnson",
"phoneNumber": "01234 567892"
},
"notes": "Originally requested LINE_PROFILE 4 but line conditions only support profile 2",
"committedDate": "2024-04-15T09:00:00.000Z",
"targetDate": "2024-04-18T13:00:00.000Z"
}
}For unsolicited cease orders created by the supplier, use the CREATED reason code.
The order status can be set to an appropriate state i.e. PENDING, ACKNOWLEDGED or IN_PROGRESS depending on the control desired by the supplier. If the order status is sent as IN_PROGRESS then Fibre Cafe will ensure appropriate notifications are sent to move the order to the desired state.
{
"id": "y1v7a286-xz65-8b59-2c90-7d8y6z2b3a05",
"sequenceNumber": 1,
"issuedOn": "2024-04-10T10:00:00.000Z",
"reasonCode": "CREATED",
"unsolicitedCeaseServiceOrder": {
"orderType": "UNSOLICITED_CEASE",
"tenant": "TENANT1",
"supplierOrderReference": "UC-123",
"status": "IN_PROGRESS",
"serviceId": "S12347",
"reason": "WORKING_LINE_TAKEOVER",
"retailerId": "ABC",
"requestedCeaseDate": "2025-04-20",
"committedDate": "2024-04-20T00:00:00.000Z",
"targetDate": "2024-04-20T00:00:00.000Z"
}
}If required, the initial order state can be sent as PENDING or ACKNOWLEDGED and the state fully controlled by the supplier. The unsolicited cease order can then be ACKNOWLEDGED and COMMITTED by KCIs. Note that both committedDate and targetDate must be provided when the order is COMMITTED.
{
"id": "y1v7a286-xz65-8b59-2c90-7d8y6z2b3a05",
"sequenceNumber": 1,
"issuedOn": "2024-04-10T11:00:00.000Z",
"reasonCode": "ACKNOWLEDGED",
"unsolicitedCeaseServiceOrder": {
"orderType": "UNSOLICITED_CEASE",
"tenant": "TENANT1",
"supplierOrderReference": "UC-123",
"status": "ACKNOWLEDGED",
"serviceId": "S12347",
"reason": "WORKING_LINE_TAKEOVER",
"retailerId": "ABC",
"requestedCeaseDate": "2024-04-20"
}
}Standard KCIs can be sent as per the other orders above. The unsolicited cease order can end in either a successful completion or termination KCI.
{
"id": "y1v7a286-xz65-8b59-2c90-7d8y6z2b3a05",
"sequenceNumber": 1,
"issuedOn": "2024-04-20T10:00:00.000Z",
"reasonCode": "COMPLETED",
"unsolicitedCeaseServiceOrder": {
"orderType": "UNSOLICITED_CEASE",
"tenant": "TENANT1",
"supplierOrderReference": "UC-123",
"status": "COMPLETED",
"serviceId": "S12347",
"reason": "WORKING_LINE_TAKEOVER",
"retailerId": "ABC",
"requestedCeaseDate": "2024-04-20",
"committedDate": "2024-04-20T00:00:00.000Z",
"targetDate": "2024-04-20T00:00:00.000Z"
}
}