# Notify Of Order Status

Messages sent back to the ALA user to indicate progress of an order.
To facilitate correct construction of messages, these messages will either contain an **alaOrderInProgress** message if the order is in progress, **alaOrderFailed** if the order has failed or cancelled and **alaOrderCompleted** if the order has completed.

Endpoint: POST /notifyOfOrderStatus
Version: 2.31

## Request fields (application/xml):

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

  - `message.messageId` (string, required)
    A unique ID to identify the message
    Example: b68b2cf4-475e-11e1-a92e-fb2ff6467c99

  - `message.correlationId` (string, required)
    A Correlation ID, also known as a Transit ID, is a unique identifier value that is attached to requests and messages that allow reference to a particular transaction or event chain
    Example: bac72cfa-475e-11e1-a92e-fb2ff6467c99

  - `message.sentAt` (string, required)
    The timestamp when the message has been sent
    Example: 2012-01-20T18:30:43Z

  - `buyer` (object, required)
    The Service Provider who consumes the service is the buyer

  - `buyer.buyerIdentifier` (string, required)
    Unique identifier of the buyer
    Example: SPDEV1

  - `buyer.cfh:resellerId` (string)
    Unique identifier of the reseller. Sourced from the Ofcom Reseller Identification List
    Example: BAQ

  - `seller` (object, required)
    the Active Network Operator who provides the service is the seller

  - `seller.sellerIdentifier` (string, required)
    Unique identifier of the seller
    Example: CITYFIBRE

  - `orderReferences` (object, required)
    Reference for the order for this buyer

  - `orderReferences.buyerOrderReference` (string, required)
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `orderReferences.cfh:projectReference` (string)
    Example: CST1234567

  - `issuedAt` (string, required)
    The timestamp when the order status notification has been issued at
    Example: 2012-01-20T18:30:43Z

  - `sequenceNumber` (number, required)
    Example: 1

  - `alaOrderStatus` (any, required)

  - `alaOrderStatus.pending` (null)

  - `alaOrderStatus.acknowledged` (null)

  - `alaOrderStatus.committed` (null)

  - `alaOrderInProgress` (any, required)

  - `alaOrderInProgress.cfh:preOrder` (null)

  - `alaOrderInProgress.location` (object)

  - `alaOrderInProgress.location.addressKey` (string, required)
    Unique identifier of the address (UPRN)
    Example: 200004753569

  - `alaOrderInProgress.location.addressKeyType` (any, required)

  - `alaOrderInProgress.location.addressKeyType.temporaryAddressKey` (null)

  - `alaOrderInProgress.location.addressKeyType.recognisedAddressKey` (null)

  - `alaOrderInProgress.location.britishAddress` (object, required)

  - `alaOrderInProgress.location.britishAddress.organisationName` (string)
    Organisation Name as registered with the tax authorities
    Example: ProdVest

  - `alaOrderInProgress.location.britishAddress.departmentName` (string)
    Department name
    Example: Procurement

  - `alaOrderInProgress.location.britishAddress.subBuildingName` (string)
    Sub building name
    Example: TwoTowers

  - `alaOrderInProgress.location.britishAddress.buildingName` (string)
    Sub building name
    Example: Tatooine

  - `alaOrderInProgress.location.britishAddress.buildingNumber` (string)
    Building number
    Example: 643-A-789

  - `alaOrderInProgress.location.britishAddress.dependentThoroughfareName` (string)
    Example: Alderaan 

  - `alaOrderInProgress.location.britishAddress.dependentThoroughfareDescriptor` (string)
    Example: Alderaan 

  - `alaOrderInProgress.location.britishAddress.thoroughfareName` (string)
    Example: Alderaan 

  - `alaOrderInProgress.location.britishAddress.thoroughfareDescriptor` (string)
    Example: Yavin  

  - `alaOrderInProgress.location.britishAddress.doubleDependentLocality` (string)
    Example: Ophuchi 

  - `alaOrderInProgress.location.britishAddress.dependentLocality` (string)
    Example: Aquilae 

  - `alaOrderInProgress.location.britishAddress.postTown` (string)
    Example: Milton Keynes

  - `alaOrderInProgress.location.britishAddress.postcode` (string)
    Location postcode / zipcode
    Example: OX25 1BW

  - `alaOrderInProgress.location.britishAddress.poBox` (string)
    PO BOX
    Example: OX25 1BW

  - `alaOrderInProgress.location.gpsCoordinates` (object)

  - `alaOrderInProgress.location.gpsCoordinates.gpsLatitude` (string)
    The angular distance of a place north or south of the earth's equator, or of the equator of a celestial object, usually expressed in degrees and minutes
    Example: 51° N

  - `alaOrderInProgress.location.gpsCoordinates.gpsLongitude` (string)
    The angular distance of a place east or west of the Greenwich meridian, or west of the standard meridian of a celestial object, usually expressed in degrees and minutes
    Example: 2° W

  - `alaOrderInProgress.serviceIdentifier` (string)
    Unique Identifier for the service
    Example: S12345

  - `alaOrderInProgress.serviceItem` (object)

  - `alaOrderInProgress.serviceItem.alaServiceConfiguration` (object, required)

  - `alaOrderInProgress.serviceItem.alaServiceConfiguration.nniIdentifier` (string)
    Optional - If none specified, will be allocated based on valid configuration
    Example: S1945

  - `alaOrderInProgress.serviceItem.alaServiceConfiguration.nniSVlanId` (integer)
    Optional - If none specified, will be allocated based on valid configuration
    Example: 3000

  - `alaOrderInProgress.serviceItem.alaServiceConfiguration.cfh:lineProfile` (string)
    Example: G1000/1000/A/V

  - `alaOrderInProgress.cfh:liveDate` (string)
    Date and time when the working line take over service is live
    Example: 2012-01-20T18:30:43Z

  - `alaOrderInProgress.appointment` (object)
    A booked appointment including the first-available-date. Complex installation appointments (`orderSurvey`/`orderExternal`/`orderInternal`) carry `cfh:startDateTime`/`cfh:endDateTime`; the single-day `appointmentDate`, `appointmentStartTime` and `appointmentEndTime` are present for simple orders and for same-day complex slots, but omitted when a complex slot spans multiple days (possible for `orderExternal`).

  - `alaOrderInProgress.appointment.appointmentDate` (string)
    Date of the appointment
    Example: 2012-01-20

  - `alaOrderInProgress.appointment.appointmentStartTime` (string)
    Appointment start time
    Example: 08:00

  - `alaOrderInProgress.appointment.appointmentEndTime` (string)
    Appointment end time
    Example: 08:00

  - `alaOrderInProgress.appointment.cfh:startDateTime` (string)
    Start of the appointment as a full ISO 8601 UTC date-time. Present on complex installation appointments (`orderSurvey`, `orderExternal`, `orderInternal`). Together with `cfh:endDateTime` it is the authoritative slot boundary, and is the only representation when an appointment spans multiple days (possible for the `orderExternal` build-to-wall stage).
    Example: 2023-05-01T08:00:00Z

  - `alaOrderInProgress.appointment.cfh:endDateTime` (string)
    End of the appointment as a full ISO 8601 UTC date-time. Present on complex installation appointments (`orderSurvey`, `orderExternal`, `orderInternal`). For a multi-day appointment (possible for the `orderExternal` build-to-wall stage) its date differs from `cfh:startDateTime`.
    Example: 2023-05-01T13:00:00Z

  - `alaOrderInProgress.appointment.appointmentReservationKey` (string, required)
    The unique key for appointment reservation
    Example: EI7PBRU6TL8KN1YNGO8ICEUI0UDFE9M8

  - `alaOrderInProgress.appointment.appointmentReservationValidUntil` (string, required)
    Reservation until date
    Example: 2012-01-20T18:30:43Z

  - `alaOrderInProgress.appointment.cfh:firstAvailableDate` (string)
    First available date
    Example: 2022-11-11T08:00:00Z

  - `alaOrderInProgress.requestedDate` (string)
    Point at which the change should be applied
    Example: 2022-01-20T18:30:43Z

  - `alaOrderInProgress.committedDate` (string)
    Example: 2012-01-20T18:30:43Z

  - `alaOrderInProgress.amendmentAccepted` (object)

  - `alaOrderInProgress.amendmentAccepted.amendmentReferences` (object, required)
    Reference for the order for this buyer

  - `alaOrderInProgress.amendmentAccepted.amendmentReferences.buyerOrderReference` (string, required)
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `alaOrderInProgress.amendmentRejected` (any)

  - `alaOrderInProgress.amendmentRejected.amendmentError` (any, required)

  - `alaOrderInProgress.amendmentRejected.amendmentError.tooLateToAmend` (null)

  - `alaOrderInProgress.amendmentRejected.amendmentError.invalidOrderReference` (null)

  - `alaOrderInProgress.amendmentRejected.amendmentError.cfh:unauthorized` (null)

  - `alaOrderInProgress.amendmentRejected.amendmentError.invalidBuyer` (null)

  - `alaOrderInProgress.amendmentRejected.amendmentError.orderCompletedOrFailed` (null)

  - `alaOrderInProgress.amendmentRejected.validationFailures` (array)

  - `alaOrderInProgress.amendmentRejected.validationFailures.validationFailure` (object)

  - `alaOrderInProgress.amendmentRejected.validationFailures.validationFailure.validationFailureField` (string, required)
    Validation Failure Field
    Example: postcode

  - `alaOrderInProgress.amendmentRejected.validationFailures.validationFailure.validationFailureMessage` (string, required)
    Validation Failure message
    Example: Invalid Postcode

  - `alaOrderInProgress.warning` (object)

  - `alaOrderInProgress.warning.warningCode` (string)
    Example: 307

  - `alaOrderInProgress.warning.warningMessage` (string)
    Example: Fault between Node and Toby

  - `alaOrderInProgress.delayed` (any)

  - `alaOrderInProgress.delayed.awaitingResponse` (any)

  - `alaOrderInProgress.delayed.awaitingResponse.awaitingAppointment` (object)
    The order is waiting for the buyer to book an appointment. For complex installation orders this element is type-agnostic: it does not state whether an `orderSurvey`, `orderExternal` or `orderInternal` appointment is required. The required type is derived from `cfh:complexOrder/cfh:stage` and `cfh:complexOrder/cfh:milestones` (see the Complex Installation Process description), with the 319 rejection as the authoritative check.

  - `alaOrderInProgress.delayed.awaitingResponse.awaitingAppointment.appointmentRequired` (null)
    An appointment must be booked before the order can proceed.

  - `alaOrderInProgress.delayed.awaitingResponse.awaitingInformation` (object)

  - `alaOrderInProgress.delayed.awaitingResponse.awaitingInformation.informationCode` (string)

  - `alaOrderInProgress.delayed.awaitingResponse.awaitingInformation.informationMessage` (string)

  - `alaOrderInProgress.delayed.cfh:missedAppointment` (object)

  - `alaOrderInProgress.delayed.cfh:missedAppointment.cfh:sellerMissedAppointment` (string)
    Example: N

  - `alaOrderInProgress.delayed.delayCode` (string, required)
    Example: 299

  - `alaOrderInProgress.delayed.delayMessage` (string, required)
    Example: Other Reason

  - `alaOrderInProgress.cfh:nextBestAction` (string)
    The next best action to take when an order is delayed

  - `alaOrderInProgress.cfh:cases` (array)

  - `alaOrderInProgress.cfh:cases.cfh:case` (object)
    Case details related to the order

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:caseId` (string)
    Example: 123

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:caseSubject` (string)
    Example: Ethernet FFN Build Case

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:openedAt` (string)
    Example: 2024-01-01T00:00:00Z

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:updatedAt` (string)
    Example: 2024-01-01T00:00:00Z

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:status` (string)
    Example: open

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:comments` (array)

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:comments.cfh:body` (string)
    Example: Example comment body

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:comments.cfh:sentAt` (string)
    Example: 2024-01-01T00:00:00Z

  - `alaOrderInProgress.cfh:cases.cfh:case.cfh:comments.cfh:from` (string)
    Example: Seller

  - `alaOrderInProgress.cancellationRejected` (any)

  - `alaOrderInProgress.cancellationRejected.cancellationError` (any, required)

  - `alaOrderInProgress.cancellationRejected.cancellationError.tooLateToCancel` (null)

  - `alaOrderInProgress.cancellationRejected.cancellationError.invalidOrderReference` (null)

  - `alaOrderInProgress.cancellationRejected.cancellationError.cfh:unauthorized` (null)

  - `alaOrderInProgress.cancellationRejected.cancellationError.invalidBuyer` (null)

  - `alaOrderInProgress.cancellationRejected.cancellationError.orderCompletedOrFailed` (null)

  - `alaOrderInProgress.cfh:newOrderType` (string)
    Order type options:
* `Regrade` - where the end customer is changing to a new product
* `Switch` - where the end customer is changing to a new internet provider (Buyer)
* `WLTO` - where the end customer is moving to a new location
    Enum: "Regrade", "Switch", "WLTO"

  - `alaOrderInProgress.cfh:isComplexOrder` (boolean)
    Included with value true for complex orders. Omitted for non-complex orders.
    Enum: true

  - `alaOrderInProgress.cfh:complexOrder` (object)
    Surfaces complex installation related information on in-progress orders.

  - `alaOrderInProgress.cfh:complexOrder.cfh:stage` (string)
    Current stage of the complex order process
    Example: Physical Survey Completed

  - `alaOrderInProgress.cfh:complexOrder.cfh:awaitingBuyerAction` (object)
    Actions that require buyer input during the survey and quote stages. The presence of a child element indicates the action is required. Not emitted for the Build to Wall or Standard Install stages, which instead surface an `awaitingAppointment` delay on `alaOrderInProgress/delayed`.

  - `alaOrderInProgress.cfh:complexOrder.cfh:awaitingBuyerAction.cfh:awaitingSurvey` (null)
    A survey appointment must be booked. The buyer books an appointment using the orderSurvey appointment type and amends it onto the order.

  - `alaOrderInProgress.cfh:complexOrder.cfh:awaitingBuyerAction.cfh:awaitingDesktopQuoteAcceptance` (null)
    Buyer needs to accept or reject the desktop survey quote

  - `alaOrderInProgress.cfh:complexOrder.cfh:awaitingBuyerAction.cfh:awaitingPhysicalQuoteAcceptance` (null)
    Buyer needs to accept or reject the physical survey quote

  - `alaOrderInProgress.cfh:complexOrder.cfh:earliestSurveyDate` (string)
    Earliest date a physical survey can occur (YYYY-MM-DD).
    Example: 2021-06-05

  - `alaOrderInProgress.cfh:complexOrder.cfh:confirmedSurveyDate` (string)
    Date the physical survey has been confirmed (YYYY-MM-DD).
    Example: 2021-06-05

  - `alaOrderInProgress.cfh:complexOrder.cfh:earliestAppointmentDate` (string)
    Earliest bookable appointment date (YYYY-MM-DD). Applies to the Build to Wall (`orderExternal`) and Standard Install (`orderInternal`) stages.
    Example: 2021-06-05

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones` (object)
    Tracking events for the complex order process

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones.cfh:milestone` (array)

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones.cfh:milestone.cfh:id` (string)
    Milestone name or identifier
    Example: Desktop Survey Issued

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones.cfh:milestone.cfh:message` (string)
    Message or description for the milestone
    Example: Desktop Survey Issued

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones.cfh:milestone.cfh:milestoneDate` (string)
    Date and time the milestone was reached
    Example: 2024-08-13T08:51:36.329Z

  - `alaOrderInProgress.cfh:complexOrder.cfh:milestones.cfh:milestone.cfh:status` (string)
    Enum: "completed"

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote` (object)
    Quote details for a desktop or physical survey associated with a complex installation.

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:id` (string)
    Unique identifier for the quote
    Example: 0123456

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:state` (string)
    Current state of the quote
    Enum: "inProgress", "approved", "accepted", "rejected", "cancelled"

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteDate` (string)
    Date and time the quote was raised
    Example: 2021-05-06T12:45:12.028Z

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteExpirationDate` (string)
    Date and time the quote expires
    Example: 2021-06-05T12:45:12.028Z

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteCompletedDate` (string)
    Date and time the quote was completed
    Example: 2021-06-05T12:45:12.028Z

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices` (object)
    Total prices for the quote

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice` (array)

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:description` (string)
    Description of the priced item
    Example: Complex Install

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:name` (string)
    Name of the priced item
    Example: Complex Install

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:priceType` (string)
    Whether the price is a one off or a recurring charge
    Enum: "nonRecurring", "recurring"

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:price` (object)

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:price.cfh:dutyFreeAmount` (object)
    The duty free amount for the priced item

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:price.cfh:dutyFreeAmount.cfh:unit` (string)
    The currency unit
    Example: GBR

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteTotalPrices.cfh:quoteTotalPrice.cfh:price.cfh:dutyFreeAmount.cfh:value` (number)
    The monetary value
    Example: 90

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteItems` (object)
    Individual priced items making up the quote

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteItems.cfh:quoteItem` (array)

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteItems.cfh:quoteItem.cfh:id` (string)
    Identifier for the quote item
    Example: 1

  - `alaOrderInProgress.cfh:complexOrder.cfh:desktopSurveyQuote.cfh:quoteItems.cfh:quoteItem.cfh:quantity` (integer)
    Quantity for the quote item
    Example: 1

  - `notes` (array)

  - `notes.note` (string)
    Example: No Toby to property

  - `alaOrderCompleted` (object, required)

  - `alaOrderCompleted.completedDate` (string, required)
    Example: 2012-01-20T18:30:43Z

  - `alaOrderCompleted.auxiliaryServiceCancellations` (array)

  - `alaOrderCompleted.auxiliaryServiceCancellations.auxiliaryServiceCancellation` (object, required)

  - `alaOrderCompleted.auxiliaryServiceCancellations.auxiliaryServiceCancellation.auxiliaryServiceName` (string, required)
    Name of Auxiliary Service
    Example: CPEInst1

  - `alaOrderCompleted.auxiliaryServiceCancellations.auxiliaryServiceCancellation.cancellationReason` (object, required)

  - `alaOrderCompleted.auxiliaryServiceCancellations.auxiliaryServiceCancellation.cancellationReason.cancellationReasonCode` (string, required)
    Example: 300

  - `alaOrderCompleted.auxiliaryServiceCancellations.auxiliaryServiceCancellation.cancellationReason.cancellationReasonMessage` (string, required)
    Cancellation reason message
    Example: No longer needed

  - `alaOrderCompleted.cfh:lateProvisionNotification` (object)

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:totalDelayInDays` (integer)
    Total delay of seller and non seller delay days
    Example: 12

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:sellerDelayDays` (integer)
    Amount of seller delay days
    Example: 4

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:nonSellerDelayDays` (integer)
    Amount of non seller delay days
    Example: 8

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions` (array)
    An array of exclusions

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions.cfh:exclusion` (object)

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions.cfh:exclusion.cfh:exclusionReason` (string)
    Exclusion Reason Code

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions.cfh:exclusion.cfh:numberOfDays` (string)
    Number of days for exclusion
    Example: 2012-01-20T18:30:43Z

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions.cfh:exclusion.cfh:startDateTime` (string)
    Start date and time of exclusion
    Example: 2012-01-20T18:30:43Z

  - `alaOrderCompleted.cfh:lateProvisionNotification.cfh:exclusions.cfh:exclusion.cfh:endDateTime` (string)
    End date and time of exclusion
    Example: 2012-01-20T18:30:43Z

  - `alaOrderFailed` (any, required)

  - `alaOrderFailed.alaOrderRejected` (any, required)

  - `alaOrderFailed.alaOrderCancelled` (object, required)

## Response 200 fields (application/xml):

  - `notifyOfOrderStatusResponse` (null)

