Changelog Sales
Ticket-distribution v1096
Apr 14th 2025- Added flag distributedAsPdf under distribution details on ticket distribution in order for clients to see if this ticket has been generated and sent as PDF-ticket from the ticket-distribution service.
Ticket-distribution v1072
Mar 25th 2025- Added new endpoint to update start of validity `POST /v1/ticket-distribution-groups/update-validities`.
Ticket-distribution v1064
Feb 26th 2025- Added new endpoint to transfer travel rights to another customer `POST /v1/ticket-distribution-groups/transfer-distribution-holder`.
Ticket-distribution v1051
Jan 29th 2025- Added seatingProperties on seat reservations on ticket distribution.
- This object mirrors the properties from seating manager and delivers more flexible ways of displaying different properties on a seat reservation.
- At the same time, seatType and seatCode are deprecated.
Ticket-distribution v1026
Dec 16th 2024- Added leg data on ticket distribution which is based on order data.
- This new leg object can be useful to show the customer the journey has a stop in between
- Whereas the data in topology only says something about where the ticket is valid
Ticket-distribution v1025
Dec 16th 2024- Added fare zones to topology on ticket distributions. Fare zones will eventually replace tariff zones.
- Tariff zones in topology. Use fare zones instead.
Ticket-distribution v1014
Nov 29th 2024- Added ability to search ticket distributions with IN operator.
Ticket-distribution v1010
Nov 26th 2024- Added search for ticket distributions by startOfValidity and endOfValidity.
Refund v444
Sep 20th 2024Breaking:
- The type Reference has changed name to OrderReference
- The type of the field feeRef on DryRunRefundFee has changed from Reference/OrderReference to ProductsElementWrapper
Cersei v628
Aug 2nd 2022- Activated automatic fee when changing to cheaper fare products without the possibility for refunding.
- New fields on ChangeOrderLinesConfiguration; selectedTravellerIds and selectedOrderLineIds. Refer to the current documentation for usage.
Order v616
May 31st 2022- Endpoint `PUT /v1/orders/{orderId}/orderlines/{orderLineId}` is deprecated. Please use `PUT /v1/orders/{orderId}/orderlines`
Order v616
May 31st 2022- New endpoint for opdating multiple order lines on an order. Using this endpoint is the preferred method to update order lines on an order.
- New event optional field "id" the OrderLineRequest API model.
Refund v302
May 22nd 2022Breaking:
- Introducing version 1 of the api. The old /v1beta/ will continue to live, but upgrading is advised.
- Introduce a required request-body for refund. This will allow for providing additional data gathered from external devices; i.e terminals.
- Refund operations, as well as the refund rule in an operation, are now required when performing a refund.
- In RefundAdminRequest, refundEntries has become refundOperations.
- /v1beta/*
- New field in RefundAdminRequest for providing data when performing an terminal refund
Payment v927
May 19th 2022- Header `Entur-Distribution-Channel` is required for all non search endpoints.
Ticket-distribution
May 13th 2022- Header `Entur-Distribution-Channel` is required for all endpoints.
Order v610
Apr 9th 2022- Endpoint `POST /v1/orders/{orderId}/orderlines/{orderLineId}/cancel` is deprecated. Please use `POST /v1/orders/{orderId}/orderlines/cancel?orderLineIds={orderLineId}`
- Endpoint `DELETE /v1/orders/{orderId}/orderlines/{orderLineId}` is deprecated. Please use `DELETE /v1/orders/{orderId}/orderlines?orderLineIds={orderLineId}`
Order v610
Apr 9th 2022- New endpoint for cancelling multiple order lines from an order. Using this endpoint is the preferred method to cancel order lines from an order.
- New event type OrderLinesCancelled for collection type events.
Order v609
Apr 6th 2022- New endpoint for deleting multiple order lines from an order. Using this endpoint is the preferred method to remove order lines from an order.
- New event for collection type events. Currently supported are OrderLinesAdded and OrderLinesRemoved. These events are available on topic `order-event-collections-{env}`.
Ticket-distribution v650
Apr 6th 2022- Endpoint `/v1/ticket-distributions/{orderId}/distribute` and `/v1/ticket-distributions/{orderId}/distribute-travel-card` is deprecated. Please use `/v1/ticket-distributions-groups/{orderId}/distribute`
Ticket-distribution v635
Mar 9th 2022- Endpoint `/v1/pdf-tickets/{orderId}/generate` is deprecated. Please use `/v1/ticket-distributions/{orderId}/generate`
Ticket-distribution v400
Jan 7th 2022- Meta information on all events. Old meta field is deprecated.
Cersei
Dec 13th 2021- Header `Entur-Distribution-Channel` is required for endpoints `/v1/reserve-offers`, `/v1/update-order` and `/v1/update-order/supplement-products`.
Refund v289
Nov 22nd 2021- New query parameter added to /v1beta/refunds/options/{orderId}. If orderVersion is set, calculation will be performed on a CONFIRMED Order of that version. Specifying a version with an Order in DRAFT is not supported.
Cersei v554
Sep 27th 2021- /reserve-offers now supports requests without orderId, an order will now be created automatically if orderId is not specified.
Order v554
Aug 26th 2021- Fully compatible OAS 3 schema now available at /api-docs/order. The old doc is no longer available. Changes are only required for clients who wants to generate code from the new spec.
Cersei
Aug 25th 2021- Field deprecations on the reserve-offers request: OfferConfiguration.customerIds, OfferConfiguration.entitlements. They were replaced by the field OfferConfiguration.customers in March 2020.
- Field deprecations on the reserve-offers request: OfferConfiguration.count. Please use either selectedTravellerIds or multiple offer configurations, depending on your use case.
- Field removals on the reserve-offers request: OfferConfiguration.reservations. This field was deprecated in May 2019 and has been ignored since March 2020.
Cersei
Aug 25th 2021- Added new field to reserve-offers request: OfferConfiguration.selectedTravellerIds.
- selectedTravellerIds is used to specify which travellers will be included in the use of this offer. As of 24.08.21, it is only used in connection with the rest compartment and sleeping compartment, but may have several uses later. A validation will be made against the legal number of UserProfiles per compartment.
Cersei v492
Jun 1st 2021- New endpoint to add supplement products to order lines. Only supplement products that does not modify seating are supported.
- https://{host}/sales/v1/update-order/supplement-products.
Payment
May 25th 2021- Changed how SOFT_DECLINE is delivered to the client. Instead of using a Map of strings call errorDetails, it is now an errorReason. Per now, the only errorCode available is SOFT_DECLINE, but it is possible to add other errorReasons when needed.
Payment
Apr 20th 2021- Support for Soft Declines for transactions that initially did not need 3d-secure. When a capture-call receives a soft decline response, the client making the capture-call will have to redirect the customer to the terminal from the createTerminal-call. From the terminal, the customer will be prompted to perform a 3D-secure process (or something similar). Soft declines results in http status 409 with the field errorDetails in the PaymentError/response body populated with ConflictReason set to SOFT_DECLINE.
Payment v804
Apr 19th 2021- Fully compatible OAS 3 schema now available at /api-docs/payment. The old doc is no longer available. Changes are only required for clients who wants to generate code from the new spec.
Refund v265
Apr 12th 2021- Fully compatible OAS 3 schema now available at /api-docs/refund. The old doc is no longer available. Changes are required for clients who wants to generate code from the new spec.
- Property RefundResponse.getAffectedPaymentAndPaymentTransactionIds has a type change. Map key is now a string.
Seating-arrangement v97
Mar 16th 2021- Convert api spec to open api spec version 3. New spec is available at `/api-docs/seating-arrangements`
Order v529
Mar 10th 2021- New fields added for several Order Events. All changes are fully compatible, and does not affect existing clients
- FeeRemoved: orderVersion
- OrderContactInformationUpdated: orderVersion
- OrderCreated: orderVersion
- OrderExpiredAtSet: orderVersion, timestamp
- OrderExternalReferenceUpdated: orderVersion
- OrderImported: orderVersion
- OrderLineAdded: orderVersion, orderLineVersion
- OrderLineCancelled: orderVersion, orderLineVersion
- OrderLineRemoved: orderVersion, orderLineVersion
- OrderLineUpdated: orderVersion, orderLineVersion
- OrderReset: orderVersion
- ReservationAdded: orderVersion
- ReservationRemoved: orderVersion
- ReservationUpdated: orderVersion
- SpecialOrderCauseAddedOrUpdated: orderVersion
- SpecialOrderCauseRemoved: orderVersion
- TravellerAdded: orderVersion
- TravellerRemoved: orderVersion
- TravellerUpdated: orderVersion
Cersei v482
Jan 19th 2021- New endpoint to change order lines in an order.
- https://{host}/sales/v1/update-order.
Cersei v482
Jan 19th 2021- Providing order line ids in api-call reserve-offers has been deprecated.
- Please use new endpoint /v1/update-order when changing order lines.
Refund v217
Nov 2nd 2020- Do not crash when an order has more than one payment
Refund v210
Oct 27th 2020- New non-required header on refund endpoints: Entur-Settlement-Id
- Validation of value in new header Entur-Settlement-Id if value is present
Payment
Oct 12th 2020- Changes to Swagger schema to make it compatible with Openapi 3. Both schema types now available for download from developer portal.
Payment
Sep 28th 2020- Added customerIdentificationNumber and externalInvoiceNumber, which are required fields when creating a penalty fare invoice.
Cersei
Sep 23rd 2020- Added Properties from Offer to Order
Refund v178
Aug 18th 2020- DCI-based refunding-possibilities
- Return error message when required headers are missing />
Refund v153
Jun 24th 2020- New type AffectedPaymentTransaction
- New Exceptions: ZeroAllowedPaymentTypeGroupsForDCI, ZeroAllowedTransactionsException
- Determine possible refundable payment transactions based on possible/allowed payment methods for provided DCI. DCI header is now required
- Determine which refund options that can be performed together, if transactionsSum != collectedRefundAmountSum
Receipt 565
Jun 9th 2020- Use of new price-lib project for all tax and price calculation
Cersei v308
Apr 29th 2020- Only validate / require entitlements for discount offers
- Update k8s apiVersion
Receipt v528
Apr 29th 2020- Bugfix for change receipt and order without reservation
Receipt v526
Apr 27th 2020- Fixed incorrect display of VAT calculation for rejection using alternative scheduled transport
Cersei v305
Apr 21st 2020- Stronger validation of Entitlement against benefits (fraud prevention)
Ticket-distribution v400
Apr 17th 2020- PersonalTicketInfo for NOD for QR code tickets
- Entitlement information on PDF tickets
- Extension of entitlement information in models
- New endpoint for creating and returning PDF tickets without sending by mail
Cersei v299 - v302
Apr 15th 2020- Convert new discount to old discount in Cersei
- Support VatRegisters validity date
- External reference when booking offers
Ticket-distribution v396
Apr 14th 2020- Personnel ticket info on PDF ticket
- Extended entitlement with contract ID
Cersei v299
Apr 2nd 2020- Convert new discount to old discount in Cersei
Ticket-distribution v387 - v391
Apr 2nd 2020- Switch KAFKA_BROKER and KAFKA_SCHEMA_REGISTRY uri
- Ticket with seat ticket info
- Extended deployment tools timeout
Cersei v296 - v298
Apr 1st 2020- Support for date-based vat registry entries
- Deployed deployment tools its timeout
- GDPR contact information update
Cersei v292-v295
Apr 1st 2020- Error retrieving country names from StopPlace
- Removing Travelers from Site Reservation Requests
- Change endpoint to retrieve reservations for reports (now fetching based on ODSJ ID instead of Res. ID)
- Reserve offers with multiple entitlements for the same customer and multiple customers with entitlements
Refund v142 - v145
Apr 1st 2020- Support for date-based vat registry entries
- Deployed deployment tools its timeout
- Better dev doc
Order v436
Apr 1st 2020- Discount Products in STS
- Support for multiple entitlements per traveler on the same order line
Ticket-distribution v392
Apr 1st 2020- Personal ticket info is linked to ticket distribution and sent to NORD
Refund v139
Mar 19th 2020- Refund ThroughFare SalesPackages without refundingPossibilities on SalesPackage-level.
Ticket-distribution v385
Mar 19th 2020- Logo and PDF config for SJ Nord
Ticket-distribution v383
Mar 18th 2020- Ticket change when changing seats
Payment v625
Mar 17th 2020- Upped the timeoutvalue on Vippsconnections and made a small config-change to the swagger-doc regarding how HATEOAS-Links are to be deserialized
Ticket-distribution v381
Mar 16th 2020- Joint ticket with three legs. Ticket with SJ -> NSB -> SJ generated only two tickets, now three are generated.
Receipt v516
Mar 12th 2020- Confirmation of change is now sent out with a new version of order that does not involve payments or credits. (Change of travel date, reservation or contact person)
Cersei v290
Mar 4th 2020- Simplified pairing of line items and seats
Receipt v511
Mar 3rd 2020- Better receipt for alternative scheduled transport
- Confirmation of change is now sent out with a new version of order that does not involve payments or credits. (Change of travel date, reservation or contact person)
Cersei v288
Mar 2nd 2020- Improved error decoder against victims so that the correct victim ID becomes available in log and response
- Increased timeout towards products so caching at restart should go faster
Refund v135
Mar 2nd 2020- Fixed that the undo period became active again when changing the order
- Introduced retrys to retrieve a ticket validity time
Payment v618
Mar 2nd 2020- Bugfix: Cancellation of payment types with a fee removed the fee before the payment was canceled
- Bugfix: Some calls against customers logged customer data
Payment v614
Feb 27th 2020- Possibility to search multiple fields from Ops-Center
- PaymentMethods is now linked to the Entur-Distribution-Channel header, and will never be able to retrieve from unless the header
Cersei v286
Feb 24th 2020- Reserve-offers attaches new order lines to customers if customerIds is included in the request
- Entitlement is validated against benefits if contract and customer are included in the request
- A customers entitlements are linked to the order line and order line traveler based on contract and customer in the request
- ServiceJourneyPrivateCode and lineId from play in the offer are now included in the order structure
Order v426
Feb 24th 2020- PurchasedTraveller has now been given contractId and externalEntitlementRef fields
- PurchasedLeg now has info on lineId and serviceJourneyPrivateCode
- Fee has got new optional orderVersion field
Cersei v282
Feb 18th 2020- Travelers are assigned to order lines based on customer IDs in the reserve offer request
- Travelers on order lines receive contractId and externalEntitlementRef based on the reserve offer request
- Contract consumption is validated against entitlements
Order v423
Feb 18th 2020- PurchasedTraveller has now received fields for contractId and externalEntitlementRef
Payment v49
Feb 17th 2020- Distribution Channel ID header is now required to retrieve PaymentMethods. Note that the payment method (s) returned in the response MUST contain the SAME ID as the one used in the header.
Cersei v278
Feb 5th 2020- API extensions to use personal ticket and link order lines created from offers with customers
Order v421
Feb 5th 2020- Traveler validation when removing from order, updating and creating line items, and order import (traveler must be on order if order line should be associated with traveler)
Seating-arrangement v49
Feb 5th 2020- The service no longer sends old correlationId to other services when it cannot find one
Ticket-distribution v372
Feb 4th 2020- It says "NSB Comfort" on the Plus tickets
- Use tariff code lookup with new list of connections / supplementProducts
Cersei v277
Jan 28th 2020- Missing user profiles for group products
Order v418
Jan 28th 2020- Upgraded Cassandra driver from version 3 to 4, so we can get away from Java
Ticket-distribution v369
Jan 28th 2020- Using the right topology type on tickets
- Main changes (for new tickets):
- Area code for Opplandstrafikk is set when purchasing "enough" zones (defined in products)
- zoneType (RING / POINT_TO_POINT) is now located on Topology for zone products
- fullAreaValidity is now located on TicketDistribution and is true if you have access to travel throughout the area (e.g. all Routes zones)
Cersei v275
Jan 27th 2020- Greater refactoring of the reservation part of the service
Ticket-distribution v368
Jan 21st 2020- Fixes around using carrier-specific from-address when sending pdf tickets
- Ability to distribute change ticket
Receipt v502
Jan 16th 2020- Subsum is shown on orders that have more than one payment method. (Mainly intended for gift card use, but there is nothing to stop, for example, sharing an order between Vipps and Visa on our part - although we believe this is not possible in clients today.)
Refund v132
Jan 14th 2020- Rules that specify no refund should not provide RefundOptions
Ticket-distribution v363
Jan 14th 2020- Filtering canceled seats for ticket allocation
- Use of carrier-specific email address sender domains (edited)
Receipt v499
Jan 8th 2020- HOTFIX: Added FULLRATE manually in products specc its DiscountBasis
Refund v131
Jan 8th 2020- Fix for deserialization trouble of 404 responses from ticket distribution
Seating-arrangement v47
Jan 8th 2020- Bugfix for direct booking of seats at OrderLineCancelled
Receipt v498
Jan 3rd 2020- Fix for cases where fees and "other" get minus sign - this also had unfortunate consequences for showing VAT bill
- Change to domains: en-tur.no -> entur.no: cake:
- Change to CSS that prevents line breaks in the middle of the VAT field heading
Refund v130
Dec 28th 2019- Add support for ResellWhen = AFTER_PURCHASE
- Make new logic surrounding Country selection from country code, which specifically binds the null value to BORDER_CROSSING
Cersei v270
Dec 18th 2019- Fix for dci caching
- Fix for duration deserialization from ticket distribution
- Double Reservation Fix for identical line items
- Fix for VAT calculation of price contribution on usage parameter
Ticket-distribution v356
Dec 18th 2019- Changed Duration from Double to String due to Spring Boot upgrade failure
Cersei v267
Dec 17th 2019- Tax code on luggageAllowance
Receipt v494
Dec 17th 2019- Remove Entur as sender from SMSes sent from other operators
- The content of change messages sent as SMS is now more appropriate
Order v413
Dec 12th 2019- PaymentEvents disappear if connection to Cassandra fails
- Validation of order lines
Refund v128
Dec 6th 2019- Support for border crossings in VAT codes (blank VAT code)
Receipt v491
Dec 5th 2019- Gift voucher codes on receipt
- Information on receipt for period tickets is missing in the subject field
Receipt v488
Dec 2nd 2019- The "fee" list on the change receipt is now called "Other" to avoid non-fees being called fees.
Ticket-distribution v346
Nov 29th 2019- QR code checksum type is now set based on diff between deliverAfter and startOfValidity at new endpoint
Cersei v262
Nov 28th 2019- Support for customer card discounts on order lines
Receipt v483
Nov 22nd 2019- View changes / changed line items on refund receipt
- Use of correct profile on group ticket sales receipt
Ticket-distribution v345
Nov 22nd 2019- Avoid logging error by specific NOD "error code" which is not really an error.
Ticket-distribution v342
Nov 22nd 2019- Removed blank field for fromTariffZoneName in response to ticket distribution groups, traveling between stopPlaces
Cersei v261
Nov 20th 2019- Fix filtering on departure reports used by support
- Remove the bug in the same discharge reports
- Prevent incorrect booking of seats on unchanged order lines
- New service showing whether or not to change reservations
Refund v124
Nov 20th 2019- Allow a PaymentTypeGroup to have an empty list of PaymentTypes to handle import payments from AGENT
Refund v123
Nov 19th 2019- Use already created credit if the total credit amount matches when performing a refund
Payment v565
Nov 5th 2019- Better validation on the transaction you are trying to credit when creating Credit
Refund v122
Nov 4th 2019- Just validates PaymentMethods on CAPTURED PaymentTranscations
Order v406
Nov 4th 2019- Do not create paymentRefs at 0kr unless there is no payment / credit
Receipt v477
Nov 1st 2019- Improved receipt text for zone-based products
- Grouping of similar products on receipt