---
# System prepended metadata

title: Untitled

---

Some fields are ripped out for ease of reading

example 1 eJ:
    Rendered as:
```
Adult 1
£13.00
Government taxes
£13.00
```
New version:
```
charge_breakdown = ImmutableVector([
    # adult
    BundleChargeBreakdown(
      breakdown=ImmutableVector([
         PriceWithPriceCode(amount=13.0, currency='EUR', price_code=BreakdownPriceCode.GOVERMENT_TAX)
      ]),
     passenger_id='adt_1'
    ),
])

```
Old JSON:

``` json

{
			"bkid": "XVHSH44I-0",
			"booking_type": "flight",
			"fare": {
				"adult_fare": 28.99,
				"adult_fee": 0.0,
				"adult_num": 2,
				"adult_tax": 13.0,
				"adult_tax_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 13.0, "price": 13.0, "tax_code": "Government taxes"}
				],
				"child_fare": 28.99,
				"child_fee": 0.0,
				"child_num": 1,
				"child_tax": 0.0,
				"child_tax_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 0.0, "price": 0.0, "tax_code": "Government taxes"}
				],
				"currency": "GBP",
				"extra_fees": 0.0,
				"infant_fare": 25.0,
				"infant_fee": 0.0,
				"infant_num": 1,
				"infant_tax": 0.0,
				"total": 137.97,
			},
			
		},
```


Icelandair
Renders:
```
Adult 1 £188.30
Air transportation charges £153.90
    Base Amount
    £99.00
    Ticketing Fee
    £13.10
    Communication fee/PSF (YRVA)
    £41.80
    
Taxes, fees and charges £34.40
    Airport Security Charge NL
    £11.50
    Passenger Service Charge NL
    £16.00
    Noise Isolation Charge NL
    £6.90
```
``` json
		{
			"bkid": "XVHSH44I-1",
			"booking_type": "flight",
			"fare": {
				"adult_fare": 99.0,
				"adult_fee": 13.1,
				"adult_fee_breakdown": [
					{"currency": "GBP", "description": "TKT FEE   ", "designator": "OB", "nature": "T01", "original_currency": "GBP", "original_price": 13.1, "price": 13.1}
				],
				"adult_num": 2,
				"adult_price_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 175.2, "price": 175.2, "price_code": "TOTAL AMOUNT PAX1"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 99.0, "price": 99.0, "price_code": "BASE AMOUNT PAX1"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 76.2, "price": 76.2, "price_code": "TAXES AMOUNT PAX1"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 175.2, "price": 175.2, "price_code": "TOTAL AMOUNT PAX2"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 99.0, "price": 99.0, "price_code": "BASE AMOUNT PAX2"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 76.2, "price": 76.2, "price_code": "TAXES AMOUNT PAX2"}
				],
				"adult_tax": 76.2,
				"adult_tax_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 41.8, "price": 41.8, "tax_code": "YRVA"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 11.5, "price": 11.5, "tax_code": "CJSO"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 16.0, "price": 16.0, "tax_code": "RNDP"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 6.9, "price": 6.9, "tax_code": "VVMU"}
				],
				"child_fare": 79.0,
				"child_fee": 13.1,
				"child_fee_breakdown": [
					{"currency": "GBP", "description": "TKT FEE   ", "designator": "OB", "nature": "T01", "original_currency": "GBP", "original_price": 13.1, "price": 13.1}
				],
				"child_num": 1,
				"child_price_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 155.2, "price": 155.2, "price_code": "TOTAL AMOUNT PAX3"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 79.0, "price": 79.0, "price_code": "BASE AMOUNT PAX3"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 76.2, "price": 76.2, "price_code": "TAXES AMOUNT PAX3"}
				],
				"child_tax": 76.2,
				"child_tax_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 41.8, "price": 41.8, "tax_code": "YRVA"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 11.5, "price": 11.5, "tax_code": "CJSO"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 16.0, "price": 16.0, "tax_code": "RNDP"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 6.9, "price": 6.9, "tax_code": "VVMU"}
				],
				"currency": "GBP",
				"extra_fees": 0.0,
				"infant_fare": 10.0,
				"infant_fee": 0.0,
				"infant_fee_breakdown": [],
				"infant_num": 1,
				"infant_price_breakdown": [
					{"currency": "GBP", "original_currency": "GBP", "original_price": 10.0, "price": 10.0, "price_code": "TOTAL AMOUNT PAX11"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 10.0, "price": 10.0, "price_code": "BASE AMOUNT PAX11"},
					{"currency": "GBP", "original_currency": "GBP", "original_price": 0.0, "price": 0.0, "price_code": "TAXES AMOUNT PAX11"}
				],
				"infant_tax": 0.0,
				"infant_tax_breakdown": [],
				"total": 554.9,
			},
	
}
```
    We would take base level elements only:

    Base Amount
    £99.00
    Ticketing Fee
    £13.10
    Communication fee/PSF (YRVA)
    £41.80
    Airport Security Charge NL
    £11.50
    Passenger Service Charge NL
    £16.00
    Noise Isolation Charge NL
    £6.90
```
charge_breakdown = ImmutableVector([
    # adult
    BundleChargeBreakdown(
      breakdown=ImmutableVector([
         PriceWithPriceCode(amount=99.0, currency='GBP', price_code=BreakdownPriceCode.BASE_FARE_AMOUNT),
         PriceWithPriceCode(amount=13.10, currency='GBP', price_code=BreakdownPriceCode.TICKETING_FEE),
         PriceWithPriceCode(amount=41.80, currency='GBP', price_code=BreakdownPriceCode.YRVA_COMMUNICATION_FEE),
         PriceWithPriceCode(amount=11.50, currency='GBP', price_code=BreakdownPriceCode.NETHERLANDS_GOVERMENT_AIRPORT_SECURITY_FEE),
         PriceWithPriceCode(amount=16.00, currency='GBP', price_code=BreakdownPriceCode.NETHERLANDS_GOVERMENT_PASSENGER_SERVICE_FEE),
         PriceWithPriceCode(amount=6.90, currency='GBP', price_code=BreakdownPriceCode.NETHERLANDS_GOVERMENT_NOISE_ISOLATION_FEE),
      ]),
     passenger_id='adt_1'
    ),
])
```
And the client would be responsible to categorise each enum on whatever category they think makes sense and translate an enum into different languages