Page tree

Skidata DTA is a ticketing system provided by Skidata company and accessible through APIs. SecuTix can connect to it to cover some specific use cases detailed below.

Skidata DTA is different from Skidata Handshake, the access control system.

Use cases

A product will be handled by Skidata DTA interface if and only if a mapping exists for that product for that specific interface.

The use cases below only apply to the products handled by Skidata DTA interface.

RFID loading

When a ticket is bought in SecuTix for a product handled by the Skidata DTA interface,

with shipment mode type RFID (see parameter 5 below),

it is possible for the buyer to load this ticket on a SwissPass or on a Skidata token card to directly pass at the gates with it.

Technical note: this loading is done by creating an order in Skidata DTA system and associating the SwissPass E-id or the Skidata token card id to this order.

Reservations

When a ticket is bought in SecuTix for a product handled by the Skidata DTA interface,

with shipment mode type different than RFID (see parameter 5 below),

the ticket produced by SecuTix gets a barcode which is an 8 character reservation code, allowing to exchange it onsite for a Skidata keycard.

Technical note: this is done by creating a reservation order in Skidata DTA.

Refunds

1.) If the check box Cancel Skidata orders in batch is set to false (its default value):

When one of the tickets mentioned above is refunded/cancelled, SecuTix tries to cancel the orders created in Skidata DTA. If the cancellation fails, the refund is still working in SecuTix but error messages are logged indicating that the cancellation failed in Skidata DTA.

2.) If the check box Cancel Skidata orders in batch is set to true

When one of the tickets mentioned above is refunded/cancelled, SecuTix does no call to cancel the orders created in Skidata DTA. The orders are NOT cancelled in Skidata DTA.

The orders can then be synced later using a specific batch called Cancellation in Skidata of tickets cancelled in SecuTix

Reconcile Sales

When a ticket is bought in SecuTix for a product handled by the Skidata DTA interface,

it is possible to execute a report that collects all the orders that have been made in Skidata DTA linked to SecuTix and verify if the status of the orders match in both systems.

If the state between the two systems is differents, an error log will appears. The result of the collected orders will be stored in a file at the end of the execution.

Setting the interface up a Skidata DTA interface for a new place

  1. Ask your Skidata DTA partner to provide you the following parameters:
    1. url : this URL should look like https://service.webhost.skidata.com/dta/webservice/sc/v10/services
    2. username
    3. password
    4. contractor id (a series of number)
  2. File a service request by SecuTix to have the URL whitelisted by the proxy
  3. Create a new external manager interface of type Skidata DTA v2. The other type is deprecated and not supported.
  4. Fille the following values according to the screen capture below
    1. 1 - URL
    2. 2 - Username
    3. 3 - Password
    4. 4 - Contractor id
    5. 5 - put here LOAD_RFID_CARD (this is the shipment type code of the shipment modes related to RFID loading)
    6. 6 - put here the following values:
      1. setValidityDateFromMovement=true
        movementValidity=false
  5. In the schedules screen, create a new schedule called Read Catalog and execute it immediately. If it is working and displaying you product ids and tariff ids, the connection is working
  6. In the mappings, map the SecuTix products (visit passes or timeslot passes) to Skidata product ids and the SecuTix tariffs to Skidata tariff ids. (mappings example below)


Meaning of the checkbox 

When checkbox is checked:

SecuTix will create reservation orders in Skidata for all non rfid rickets

And will create sale orders in Skidata when people load their tickets on rfid.

(behavior of Skidata DTA interface V2)

When checkbox is not checked:

SecuTix will create sale orders in Skidata when people load their tickets on rfid.

Meaning of the checkbox 

When the reservation checkbox is checked: see above. Below rules are ignored.

When "Create Skidata sales..." checkbox is checked 

SecuTix will create sale orders in Skidata for all non rfid rickets

And will create sale orders in Skidata when people load their tickets on rfid, cancelling the previous sake orders, if existing.

When "Create Skidata sales..." checkbox is not checked 

SecuTix will create sale orders in Skidata when people load their tickets on rfid.

Meaning of the checkbox Systematically check order status in DTA (will slow the sales)

If checked

After every sale creation, SecuTix will wait for 3 seconds, then call the Skidata DTA API checking the order status. If the state of the order is valid according to DTA, the order is correctly finalized. Else, the order will fail.

Switching from DTA v10 interface to SWEB interface

Context

  • For all interfaces calling Skidata DTA v10 version you will need to migrate them to the new Skidata SWEB v1 APIs.
  • For each contractor you should ask Skidata support to give you new credentials to get access to the new APIs.

Steps to follow to do the migration from DTA to SWEB

  1. Open the external interface that you want to migrate to new SWEB API.
  2. Change the actual URL to the new one " https://skidata.com/bei/"
  3. Please contact Skidata support to get your new credentials to get access to their new endpoints.
  4. Fill login, password and contractor with your right values get from Skidata support.
  5. To validate the configuration, execute the read catalog schedule. It should end in success and list products.

Example of readCatalog call : 

Now you have configured your new API migration to the new SWEB APIs.

Custom parameters

Parameter nameMeaningDefault value
setValidityDateFromMovementGets the validity date from movementfalse (should be true as it is always used like this)
movementValidityNot used
checkSaleOrderWaitingTime
Waiting time, in seconds, before calling back DTA to check order status3
checkMissingSkidataConsumerCategoryId
System throws an error if tariff mapping or price mapping are missing, blocking the salestrue
validSateStatus
List of valid status of skidata orders (used then the check 
PENDING,RESERVED,BOOKED,BOOKED_AND_TRANSFERRED,CANCELED,CANCELED_AND_TRANSFERRED,CORRECTED,NO_STATUS,NOT_PAID,PAID

Frequently asked questions

1. What does the following error in the execution logs mean? A Cancelation of a 'Reservation'-order is not allowed.

When cancelling an order, SecuTix does not know if it is a reserved order or a normal order. It tries first to cancel it as a reserved order, then as a normal order. If an order is not a reserved order, the error message above is displayed.

2. Why is there a “Read time out” error in the execution logs?

Because SecuTix could not connect to the remote Skidata DTA system. The next steps to analyse the problem here are:

  1. Run a Read Catalog schedule to see if any data are retrieved. If there is no error, it means that the problem was temporary and is now solved.
  2. Check that the URL in field URL is the right URL provided by Skidata. (if the communication between the systems already worked, this step can be skipped)
  3. Check that the setup element 2 (File a service request by SecuTix to have the URL whitelisted by the proxy) has been executed. (if the communication between the systems already worked, this step can be skipped)
  4. Contact Skidata DTA support to understand if the systems were up at the time of the problem.
  5. If none of the following steps explains the problem, contact SecuTix support.

3. What does the following error mean ? Unable to cancel an order with an order type of "TICKET_RESERVATION”

Same answer as for 1.

4. Why is the execution still set on “OPEN”?

All executions of functions different from Read Catalog are what SecuTix calls daily executions. Those executions are opened dated midnight at the first interaction of the day with Skidata and are closed at the first interaction of the same kind on a subsequent day.

5. Why is it possible to cancel controlled tickets in some interfaces and in other interfaces it is giving an error?

This question concerns Skidata DTA possibilities. SecuTix has no control over the features of that system.

6. Why do I receive the following error and what does it mean? ERROR [External error] Failed to connect to the external system. (Cancelation of any ticket item of order item "79fd0ab0-6170-11eb-8f33-005056926684" not allowed, because it is already cancelled)

This error message is returned when SecuTix retries to cancel an order already cancelled in Skidata DTA. The order may have been cancelled on Skidata DTA side or SecuTix is processing to a retry. The latter case is a normal case and should raise no alarm.

7. How can I check for which order the error appeared?

If the error message indicates neither SecuTix order Id nor Skidata DTA order id, contact the support so that those information can be added.

8. How can I know, which customer was concerned in the error?

If the order was created with NOVA integration, SecuTix has no knowledge of the concerned client. The question must be asked to NOVA teams.

9. How could the customer load the swisspass even though the Skidata DTA interface is not yet set up?

Because Skidata DTA loading and Swisspass loading are different things.

When a ticket is "loaded on Swisspass", the following stuff happens:

  • SecuTix contacts Swisspass system and indicates to Swisspass systems that a given ticket was associated with the Swisspass. This call has NO effect on any access control. It only allows Swisspass user to consult their Swisspass account to check which tickets were loaded.
  • THEN, if the product is linked to Skidata, SecuTix also contacts Skidata DTA system and indicates that the given Swisspass is entitled to pass the gate at a given time. (see use case 1, above)

10. Why is there the same error message for controlled and out of validity tickets? Message: Ticket has already been consumed

This message comes from Skidata DTA system. Please contact Skidata DTA support.

11. Referenced consumer category "ERWHTA16" is not defined" – What does this message mean?

This message comes from Skidata DTA system. Please contact Skidata DTA support.

12. Why are the different Skidata interfaces processing cancellations in a different way?

There is only one supported Skidata DTA interface integration (the v2). There is no "different way". The "old" implementation is not supported anymore due to a demand by SBB which requested a new version.

13. How can we reintegrate tickets in a Skidata interface, if we set up the interface after some sales have been done?

SecuTix offers no possibility to do that. The orders must be manually cancelled and re-created.

14. Why do we only receive a warning and not an error in the old Skidata interface when a cancellation is failing in Skidata, but working in Secutix?

"Old" implementation is not supported anymore. Any change in the implementation of Skidata DTA v2 must be filed as an evolution request and be paid.

15. Why are we not receiving email notifications for warnings in Skidata interfaces?

This is a global policy implemented in SecuTix.

Warnings are warning and should not trigger immediate action. Errors should trigger user action.

16. I did the interface setup, but Handshake is receiving no tickets

You are reading the documentation of Skidata DTA interface. Skidata Handshake is another product.





  • No labels