Skip to main content

Cache Export

The cache export system allows partners to retrieve search results in bulk via an asynchronous SFTP-based workflow.

How it works

The partner deposits a CSV request file on the SFTP server of their choice. Tictactrip processes these files several times a day and deposits the results as XML files on the same SFTP.

Partner                SFTP             Tictactrip
| | |
| 1. Upload CSV | |
|------------------->| |
| | |
| | 2. Read CSV |
| | (several times/day)|
| |------------------->|
| | |
| | 3. Process |
| | search requests |
| | |
| | 4. Upload XML |
| |<-------------------|
| | |
| 5. Retrieve XML | |
|<-------------------| |
| | |

CSV request file

The request file is named {PARTNER}.csv and uses ; as a separator.

Columns

ColumnDescriptionExample
outboundDepCityCodeOutbound departure city code (place ID)c|FRchambery@u0h5n
outboundArrCityCodeOutbound arrival city code (place ID)c|FRmoutiers@u0hdu
inboundDepCityCodeInbound departure city code (place ID)c|FRmoutiers@u0hdu
inboundArrCityCodeInbound arrival city code (place ID)c|FRchambery@u0h5n
outboundDateOutbound departure date2025-11-01
inboundDateInbound departure date2025-11-02
outDateOffsetOutbound date offset (days)0
inDateOffsetInbound date offset (days)0
outMaxArrivalTimeMaximum outbound arrival time22:00
inMinDepartureTimeMinimum inbound departure time06:00
minTransportDurationGoMinimum outbound trip duration (minutes)30
maxTransportDurationGoMaximum outbound trip duration (minutes)300
minTransportDurationBackMinimum inbound trip duration (minutes)30
maxTransportDurationBackMaximum inbound trip duration (minutes)300
minStopoversMinimum number of stopovers0
maxStopoversMaximum number of stopovers2
transportClassTransport classEconomic
includedCarriersCarriers to include (comma-separated codes)13, 2C, 2C*, 2H, 9F
excludedCarriersCarriers to exclude (comma-separated codes)1, 13
outMinArrivalTimeMinimum outbound arrival time08:00
inMaxDepartureTimeMaximum inbound departure time20:00
outMaxLateArrivalTimeMaximum late outbound arrival time23:00
info

City codes use Place IDs (e.g. c|FRchambery@u0h5n).

XML response file

The response file is named {PARTNER}.xml and contains a <TransportList> with one <Transport> element per result.

Structure

<?xml version="1.0" encoding="utf-8"?>
<TransportList>
<Transport CacheDate="2025-10-01T12:07:05.081Z"
CarrierType="Other"
PlatingCarrier=""
Class="Economic">
<Price Base="34" Tax="0" Currency="EUR" />
<OutboundTrip Duration="77" Stopover="0">
<Departure>
<Date>2025-11-01</Date>
<Location>c|FRchambery@u0h5n</Location>
<Time>09:53</Time>
</Departure>
<Arrival>
<Date>2025-11-01</Date>
<ArrivalDateOffset>0</ArrivalDateOffset>
<Location>c|FRmoutiers@u0hdu</Location>
<Time>11:10</Time>
</Arrival>
</OutboundTrip>
<InboundTrip Duration="78" Stopover="0">
<Departure>
<Date>2025-11-02</Date>
<Location>c|FRmoutiers@u0hdu</Location>
<Time>06:49</Time>
</Departure>
<Arrival>
<Date>2025-11-02</Date>
<ArrivalDateOffset>0</ArrivalDateOffset>
<Location>c|FRchambery@u0h5n</Location>
<Time>08:07</Time>
</Arrival>
</InboundTrip>
</Transport>
<!-- ... more Transport elements -->
</TransportList>

Transport attributes

AttributeDescription
CacheDateTimestamp when the result was cached
CarrierTypeType of carrier
PlatingCarrierPlating carrier code
ClassTransport class (e.g. Economic)

Price

AttributeDescription
BaseBase price in the specified currency
TaxTax amount
CurrencyCurrency code (e.g. EUR)

OutboundTrip / InboundTrip

AttributeDescription
DurationTrip duration in minutes
StopoverNumber of stopovers

Each trip contains Departure and Arrival elements with:

FieldDescription
DateDate of departure/arrival (YYYY-MM-DD)
LocationPlace ID
TimeLocal time (HH:mm)
ArrivalDateOffsetNumber of days offset from departure date (arrival only)