Service Description



asrv.aero

Bag Drop Service v 1.0



Namespace: http://www.asrv.aero/webservices/1.0/BagDropService/


The service description is a work in progress, and without version control, as long as this note is here.

1. Service facts

2. Introduction

2.1. Overview

This service description defines one service with a set of operations designed to support typical (self-service) bag drop systems. The operations used to communicate with a DCS (departure control system) are based on the IATA CUWS standard.
All flight related data elements are defined by the Airport Data Dictionary.

The service is designed to meet the need of a bag drop system provider.

A set of use cases are described here: Avinor use cases

2.2. Implementation considerations

Any implementation of this service MUST use the XSD files provided here: XSDs

It is however up to the service provider which data elements to support.

Any service provider should make available documentation about the actual implementation, including:

    • the address of the service.
    • any limitations in the implementation.

2.3. Purpose of this service description

This service description has the following purpose:

      • Describe of service in enough detail for a service provider to implement it.
      • Describe the service so that a client (of this service) developer can use it.
      • Make available the XSD files necessary to implement and use the service.
      • Make it possible for relevant people at airports, airlines, handlers and other aviation partners to understand the available functionality and then to decide if to implement/use it or not.

2.4. Intended readership

    • IT architects
    • Developers
    • Business architects
    • Interested parties in the aviation community

3. Service operations

3.1. Overview

3.2. HTTP Return Codes and Error Response

3.3. Return codes

The service uses the following HTTP return codes:

3.4. Error reponse


3.5. Operations

3.5.1. GetConfiguration ( airportIATA : AirportIATA,  bagDropUnit : BagDropUnit  ) : BagDropConfiguration

Returns any configuration data found for this (self-service) bag drop.

Access method: GET

Parameters:

  • airportIATA : AirportIATA
    Identifies the airport where the bag drop unit is placed.
  • bagDropUnit : BagDropUnit
    Identifies the actual bag drop unit.

Returns:


3.5.2. GetStatus ( ) 

Returns, as a HTTP return code, the status of the service. 200 OK means that the service is working normally.

Access method: GET

Parameters:

None.

Returns:


3.5.3. GetDcsStatus ( airportIATA : AirportIATA ) : DcsStatus

Returns a list of airlines with DCS support that should be available for this airport (as received by GetConfiguration), and the current availability of each DCS.

Access method: GET

Parameters:

  • airportIATA : AirportIATA
    Indicates the airport for which DCS status is unknown.

Returns:


3.5.4. GetOperatingCarrier ( TransactionId, AirportIATA,  BagDropUnit, BagTagNumber ) : CarrierInformation

Returns carrier information (operating carrier and flight information) if the bag tag is found. This information is typically from a BSM received by the airport. It is necessary to use GetOperatingCarrier as the BagTagIssuerCode from the bag tag might not be for the actual operating carrier (i.e. a marketing flight).

Access method: GET

Parameters:

Returns:


3.5.5. LocalVerifyBag ( LocalVerifyBagInput )

Verifies that the bag drop complies to local, the current airport, rules. Does not involve the operating airline's DCS.

Access method: POST

Parameters:

Returns:


3.5.6. BagNotify ( BagNotifyInput )

Notifies the airport about a successful bag drop, or a failed bag drop.

Access method: POST

Parameters:

Returns:


3.5.7. BaggageConformanceIdentify ( TransactionId, AirportIATA,  BagDropUnit, BagTagNumber ) : BaggageConformanceIdentifyResponse

To establish whether the scanned bag tag is recognized by the DCS, and return related flight and passenger information

Access method: GET

Parameters:

Returns:


3.5.8. BaggageConformanceVerify ( BaggageConformanceVerifyInput )

To establish whether the bag is acceptable for carriage for the given location, point in time and bag data supplied (e.g. weight and dimension). The location may dictate which verification rules will be employed. The bag will be activated as part of a verification step if a bag gets injected into the baggage handling system.

The input parameter is mostly a copy of what was returned from BaggageConformanceIdentify, but with some additional details regarding the baggage.

Access method: POST

Parameters:

Returns:


3.5.9. PassengerConformanceIdentify ( PassengerConformanceIdentifyInput ) : PassengerConformanceIdentifyResponse

To identify the passenger in the host departure control system and return contextual data associated to the location and device type. In the case of self-service bag drop this will be; passenger name, thru-checked flight detail and assigned bag tag numbers. The data returned will outline the passenger, their bags and their weight entitlement per bag. This is only a data retrieval operation that will not apply any applicability or eligibility rules.

Access method: POST

Parameters:

Returns:


3.5.10. PassengerConformanceVerify ( PassengerConformanceVerifyInput 

To verify the passenger is eligible for further transactions at his location through verification against policy. 

Access method: POST

Parameters:

Returns:

4. Data entities

4.1. BagDropConfiguration


4.2. DcsStatus

ADD Term / Entity Comments
AirportIATA The relevant airport.
DcsAvailability 0..*



4.3. CarrierInformation

ADD Term / Entity Comments
TransactionId The transaction sequence the GetOperatingCarrier operation is part of.
AirportIATA The airport where the bag drop unit is located. This will be the departure airport.
BagDropUnit The relevant bag drop unit.
BagTagNumber The bag tag the flight information below relates to.

BagDepartureOperatingAirlineIATA

The airline operating the outbound flight from the airport where the passenger is.

BagDepartureFlightId 0..1


BagDepartureFlightDepartureDate 0..1


BagNextAirportIATA 0..1

The next airport (segment oriented) for the bag. NB! For multi leg flights this might not be the next airport the aircraft lands at.

BagFinalAirportIATA 0..1 Either the same as BagNextAirportIATA, or a later airport if BagDropService has the information.

4.4. LocalVerifyBagInput

ADD Term / Entity Comments
TransactionId The transaction sequence the LocalVerifyBag operation is part of.
AirportIATA The airport where the bag drop unit is located.
BagDropUnit
BagTagNumber
BagWeightPrecise
BagDepartureOperatingAirlineIATA
BagDepartureFlightId
BagDepartureSOBT
BagNextAirportIATA
BagFinalAirportIATA



4.5. BagNotifyInput


ADD Term / Entity Comments
TransactionId The transaction sequence the BagNotify operation is part of.
AirportIATA
BagDropUnit
BagTagNumber
BagPnrCode 0..1

BagCheckInStatus


BagDepartureOperatingAirlineIATA 0..1
BagDepartureFlightId 0..1
BagDepartureSOBT 0..1
BagNextAirportIATA 0..1

BagTypeIndicator 0..1


BagSizeIndicator 0..1


BagWeightPrecise 0..1
BagLength 0..1
BagWidth 0..1
BagHeight 0..1

BagImage 0..*


Add any images that might exist of the bag, but only add a given image once even if BagNotify is called multiple times in a transaction sequence.




4.6. BaggageConformanceIdentifyResponse

ADD Term / Entity Comments
TransactionId
AirportIATA
BagDropUnit


Bag information
BagGuid 0..1
BagTagNumber
BagTagStatus


Passenger information
PassengerGuid 0..1
PassengerFirstName 0..1
PassengerLastName
PassengerInitialsAndOrTitle 0..1
Gate The gate for the departing flight from this airport.


FlightSegment 1..* See FlightSegment.




4.7. BaggageConformanceVerifyInput

ADD Term / Entity Comments
TransactionId The transaction sequence the BagNotify operation is part of.
AirportIATA
BagDropUnit
Bag information
BagGuid 0..1
BagTagNumber
BagTagStatus
BagWeightPrecise
BagLength 0..1
BagWidth 0..1
BagHeight 0..1
PassengerGuid 0..1
Passenger information Per segment
PassengerFirstName 0..1
PassengerLastName
PassengerInitialsAndOrTitle 0..1


FlightSegment 1..* See FlightSegment.

4.8. PassengerConformanceIdentifyInput

ADD Term / Entity Comments
TransactionId The transaction sequence the PassengerConformanceIdentify operation is part of.
AirportIATA
BagDropUnit


Passenger information
PassengerGuid 0..1
PassengerFirstName 0..1
PassengerLastName
PassengerInitialsAndOrTitle 0..1


FlightSegment 1..* See FlightSegment.

4.9. PassengerConformanceIdentifyResponse

ADD Term / Entity Comments
TransactionId The transaction sequence the PassengerConformanceIdentify operation is part of.
AirportIATA
BagDropUnit


Passenger information
PassengerGuid 0..1
PassengerFirstName 0..1
PassengerLastName
PassengerInitialsAndOrTitle 0..1


FlightSegment 1..* See FlightSegment.

4.10. PassengerConformanceVerifyInput

ADD Term / Entity Comments
TransactionId The transaction sequence the PassengerConformanceVerify operation is part of.
AirportIATA
BagDropUnit


Passenger information
PassengerGuid 0..1
PassengerFirstName 0..1
PassengerLastName
PassengerInitialsAndOrTitle 0..1


FlightSegment 1..* See FlightSegment.

4.11. FlightSegment

ADD Term / Entity Comments
The passenger PNR code for this segment







Can be used if SOBT isn't available.
Preferred. Use if available.


5. Avinor use cases

6. Overview

This section describes how Avinor plan to use this service from self service bag drop stations. Other airports might use the service in a different way.

7. Use of TransactionId

TransactionId identifies a set of operations related to one bag delivery attempt. If multiple attempts are used to get the bag dropped a separate TransactionId must be used for each attempt. For instance, the same TransactionId is used through the following set of operatoions:

8. Use cases

8.1. Configuration and status checking

The sequence diagram shows the typical initial use of the BagDropService by the SBD.

  1. First the SBD use GetConfiguration to initialize. GetConfiguration should be used regularly as it can change, for instance every 2 hours.
    NB! What is a reasonable time?

  2. GetStatus should be called regularly to verify the status of BagDropService. This can then also be used to indicate that the SBD is operational.
    A polling interval of 2 minutes are reasonable.
    NB! What is a reasonable time? 

  3. If GetStatus, or any other operation, indicates a DCS problem, GetDcsStatus can be called to get more precise information. GetDcsStatus should only be called if a DCS problem is indicated. 
    NB! GetDcsStatus is not currently implemented by Avinor to retrieve real time status  from the DCS. It follows that it isn't necessarily to use it.

  4. The operations mentioned above are used until a passenger initiates a bag drop. After the bag drop the get configuration and status testing resumes.

8.2. Using BagDropService and only scan the bag tag - no scan of boarding pass

Configuration and regular status checks while the SBD is idle is described here: Configuration and status checking.

BagDropService is responsible for managing all aspects of the DCS communication.

NB! All calls to BagDropService related to one bag delivery process must use the same TransactionId. See also Use of TransactionId.


  1. The passenger initiates the bag drop by scanning the bag tag.

  2. The SBD must call GetOperatingCarrier to get the actual operating carrier. This also informs the bag drop service that a new bag drop has started.

  3. The SBD calls BaggageConformanceIdentify. This will result in a DCS request from the Bag Drop Service to get information about the bag, the passenger and the flight the bag should leave on.

  4. As there is no scan of boarding pass in this use case the SBD calls PassengerConformanceIdentify with the passenger and flight data received from BaggageConformanceIdentify.
      
  5. The SBD must call LocalVerifyBag to ensure that the bag is acceptable for the airport. This also indicates to the bag drop service that the bag is (close to) accepted by the SBD.

  6. The SBD calls BaggageConformanceVerify with basically the data received from BaggageConformanceIdentify. In addition bag weight must be added, and bag size can be added. The Bag Drop Service will then verify with the DCS that the bag can be sent.

  7. The SBD must call BagNotify to notify the bag drop service that the bag has been sent on to the baggage handling system at the airport.

8.3. Using BagDropService and scan of bag tag and scan of boarding pass

Configuration and regular status checks while the SBD is idle is described here: Configuration and status checking.

BagDropService is responsible for managing all aspects of the DCS communication.

NB! All calls to BagDropService related to one bag delivery process must use the same TransactionId. See also Use of TransactionId.

  1. The passenger initiates the bag drop by scanning the bag tag.

  2. The SBD must call GetOperatingCarrier to get the actual operating carrier. This also informs the bag drop service that a new bag drop has started.

  3. The passenger is requested to scan the boarding pass. Result is made available to the SBD.

  4. The SBD calls PassengerConformanceIdentify with data from the boarding pass. This data set is sent to the DCS and the DCS validates the passenger and that the bag is acceptable for the passenger.

  5. The SBD calls BaggageConformanceIdentify. This will result in a DCS request from the Bag Drop Service to get information about the bag, the passenger and the flight the bag should leave on.

  6. The SBD must call LocalVerifyBag to ensure that the bag is acceptable for the airport. This also indicates to the bag drop service that the bag is (close to) accepted by the SBD.

  7. The SBD calls BaggageConformanceVerify with basically the data received from BaggageConformanceIdentify. In addition bag weight must be added, and bag size can be added. The Bag Drop Service will then verify with the DCS that the bag can be sent.

  8. The SBD must call BagNotify to notify the bag drop service that the bag has been sent on to the baggage handling system at the airport.

8.4. Using BagDropService and DCS direct connection

Configuration and regular status checks while the SBD is idle is described here: Configuration and status checking.

It is possible for the SBD to have direct communication with a DCS, including through a broker, and only use the BagDropService for local configuration/information and transaction logging (BagNotify). The sequence diagram below shows the use of BagDropService in this setting.

The SBD is responsible for managing all aspects of the DCS communication.

NB! All calls to BagDropService related to one bag delivery process must use the same TransactionId. See also Use of TransactionId.


  1. The passenger initiates the bag drop by scanning the bag tag.

  2. The SBD must call GetOperatingCarrier to get the actual operating carrier. This also informs the bag drop service that a new bag drop has started.

  3. Any DCS communication in this use case is the responsibility of the SBD.
    This initial communication would be to verify the bag.

  4. If required by the airline the boarding pass must be scanned.

  5. Any DCS communication in this use case is the responsibility of the SBD.

  6. The SBD must call LocalVerifyBag to ensure that the bag is acceptable for the airport. This also indicates to the bag drop service that the bag is (close to) accepted by the SBD.

  7. Any DCS communication in this use case is the responsibility of the SBD.

  8. The SBD must call BagNotify to notify the bag drop service that the bag has been sent on to the baggage handling system at the airport.

9. XSDs

File Created Comment

Bagdropservice-xsd.zip

2023-03-17 11:43  


  • No labels