File descriptions
General
Since the export functionality is shared with the Tulo Engage Data Platform (TEDP), it means that the export you will receive can get new features added to TEDP to your export as well.
This could be new data in the form of new columns for specific collections or entirely new collections.
The export program doesn't automatically add new columns or new files to your specific export since your import-routines might not be ready for this. We will inform you when new data is available and you can then
decide if you want to add this to your export when you are ready to receive it.
Supported transfer methods
Currently files can be transferred to Azure cloud storage, AWS S3, Google Cloud Platform and specific servers using SFTP or FTPS. If you have other requirements please contact us for a discussion.
Details
- Files can be transferred as one compressed package (zip or tgz) or as individually compressed files.
- In the case where they are transferred as individually compressed files, a sub-directory is created with the date for the export and the files will be place there.
- It's also possible to transfer files into date-partitioned directories.
- If files are transferred as one compressed package, the export-file will have the date of the export in the filename.
If you have other requirements please contact us for a discussion.
Files
Details
- All "timestamps" are exported in UTC-format.
- Data is UTF-8 encoded
- Columns are separated with a
^
character.
accounts
column |
type |
description |
id |
string |
account id |
organisation_id |
string |
id of organisation |
email |
string |
email address |
first_name |
string |
|
last_name |
string |
|
birth_date |
timestamp |
|
ssn |
string |
social security number |
crn |
string |
company registration number |
company_name |
string |
|
alias |
string |
|
mobile_number |
string |
|
customer_number |
string |
|
tulo_customer_number |
string |
if Payway is also managing distribution a specific tulo customer number is usually generated for new accounts |
loyalty_card_number |
string |
if using Tulo Loyalty with Payway |
account_origin |
string |
account origin if collected |
age |
int |
|
gender |
string |
M/F |
street |
string |
|
building |
string |
|
staircase |
string |
|
floor |
string |
|
apartment |
string |
|
zip_code |
int |
zip_code |
city |
string |
|
country |
string |
|
status |
string |
account status: created, active, frozen, archived |
created_from |
string |
from where was the account created? possible values include: activation, registration. external_api, migration, admin, purchase |
marketing_permissions |
string |
comma-separated list of marketing acceptance |
authentication_frozen_until |
timestamp |
if account is frozen it is frozen to this timestamp |
last_unfreeze |
timestamp |
when account was last unfrozen |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
account_authentication_attempts
The last 5 authentication attempts made by a customer.
column |
type |
description |
id |
string |
account id |
organisation_id |
string |
id of organisation |
account_id |
string |
|
application_name |
string |
name of application that facilitated the authentication attempt |
ip_address |
string |
the ip-address used |
user_agent |
string |
the user-agent used |
persist |
bool |
indicates if the user checked "remember me" when authenticating |
successful |
bool |
indicates if the authentication attempt was successful |
created |
timestamp |
the timestamp of the authentication attempt |
account_external_ids
column |
type |
description |
account_id |
string |
id of account |
organisation_id |
string |
id of organisation |
key |
string |
name of external id key |
value |
string |
value for external id |
exported_at |
timestamp |
|
account_marketing_permissions
column |
type |
description |
id |
string |
id of permission (see marketing_permissions) |
organisation_id |
string |
id of organisation |
account_id |
string |
|
exported_at |
timestamp |
|
account_timeline
Only events for the last year is exported.
column |
type |
description |
id |
string |
id of account timeline |
organisation_id |
string |
id of organisation |
type |
string |
event type category |
message |
string |
text describing the event |
producer |
string |
who requested the event |
account_id |
string |
|
application |
string |
application that requested the event |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
cost_centers
Accounting records, can be associated with a package/campaign.
column |
type |
description |
id |
string |
id of cost-center |
organisation_id |
string |
id of organisation |
name |
string |
name of cost center configuration |
project |
string |
project identifier |
cost_center |
string |
cost center identifier |
normal_cost |
string |
normal cost identifier |
within_eu |
string |
within eu |
within_eu_taxed |
string |
within eu taxed |
outside_eu |
string |
outside eu |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
event_error_logs
Export event errors
column |
type |
description |
id |
string |
id of cost-center |
organisation_id |
string |
id of organisation |
priority |
string |
priority of error |
category |
string |
category |
command |
string |
export command |
account_id |
string |
affected account |
order_id |
string |
affected order |
payment_id |
string |
affected payment |
product_id |
string |
affected product |
service_id |
string |
affected service |
sharing_id |
string |
affected sharing object |
ssi_error_id |
string |
ssi error |
user_product_id |
string |
affected user-product |
change_to_user_product_id |
string |
affected changed user-product |
voucher_id |
string |
affected voucher |
status |
string |
status of error |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
event_error_history_logs
History for an error
column |
type |
description |
error_id |
string |
id of error |
organisation_id |
string |
id of organisation |
history_id |
string |
id of history log |
history_text |
string |
text on history log |
user |
string |
username responsible for history log |
created |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
marketing_permissions
column |
type |
description |
id |
string |
id of permission |
organisation_id |
string |
id of organisation |
name |
string |
permission name |
type |
string |
permission type |
description |
string |
permission description |
is_active |
bool |
true if permission is active |
is_checked_default |
bool |
true if permission is checked by default |
is_general |
bool |
true if permission is considered a "general" permission |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
offline_payment_periods
Only applicable if Billecta is used as payment provider for invoices or autogiro
column |
type |
description |
id |
string |
id of payment period |
organisation_id |
string |
id of organisation |
payment_reference |
string |
reference to invoice in Billecta |
status |
string |
status of offline period. one of: created , cancelled , credited , paid , disregarded , bill_sent |
invoice_date |
timestamp |
invoice date |
invoice_resent_date |
timestamp |
timestamp for last resending of invoice |
invoice_closed_date |
timestamp |
timestamp when invoice period closed, status could be either paid , credited or disregarded |
payment_due_date |
timestamp |
payment due |
payment_write_off_date |
timestamp |
when the invoice period will be disregarded/credited due to write_off date passed |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |
status
created
- period not yet invoiced (sent to Billecta)
cancelled
- if status is "bill_sent" and the invoice isn't payed before due-date (+extradays) it will be "cancelled" and the next period will be "disregarded"
credited
- period has been credited in Billecta
paid
- period is payed
disregarded
- invoice credited due to write-off date passed
bill_sent
- invoice created in Billecta, will be sent within 1h
orders
column |
type |
description |
id |
string |
account id |
parent_order_id |
string |
if order has a parent it has a parent_order_id, typically an order created through a campaign transformation. |
organisation_id |
string |
id of organisation |
order_id |
string |
Payway human readable order-id, consists of organisation id followed by a sequence number (XXX-nnn). |
order_type |
string |
Order type, one of normal , gift or partial_payment |
account_id |
string |
|
product_id |
string |
|
product_code |
string |
|
campaign_package_id |
string |
if order is campaign, this identifies the package the campaign is based on. |
purchase_type |
string |
possible values: recurring, limited |
payment_method |
string |
possible values: invoice, autogiro, directdebit, directdebit_recurring, creditcard, free, klarna, klarna_payments |
partial_payment_id |
string |
If order is of type partial_payment , this identifies the partial payment configuration |
partial_payments_selected |
int |
If order is of type partial_payment , this identifies the number of payments the user selected |
traffic_source |
string |
|
title_code |
string |
|
vat_code |
int |
|
period_type |
string |
possible values: day, week, month, year, unlimited |
period_length |
int |
|
period_iterations |
int |
number of period-iterations the subscription will live before it is transformed into ordinary subscription if order is campaign. A value of -1 indicates it's no campaign order, if 0 it indicates a limited subscription. |
period_price |
numeric |
not available for customers in Finland at the moment. |
subscription_start_date |
timestamp |
the date the subscription will start if purchase was made with a future startdate. |
status |
string |
possible values: created, closed . Only "closed" are successful. |
merchant_reference |
string |
merchant reference for order. At most 1024 chars. |
payer_company |
string |
name of company that pays the subscription if available |
payer_email |
string |
email of payer if available |
paywall_id |
string |
Id of the Tulo Paywall this order was created from. |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
order_addresses
column |
type |
description |
order_id |
string |
the order id this address belongs to |
organisation_id |
string |
id of organisation |
first_name |
string |
|
last_name |
string |
|
street |
string |
|
building |
string |
|
staircase |
string |
|
floor |
string |
|
apartment |
string |
|
zip_code |
int |
|
city |
string |
|
country |
string |
|
exported_at |
timestamp |
|
order_billing_addresses
column |
type |
description |
order_id |
string |
the order id this address belongs to |
organisation_id |
string |
id of organisation |
first_name |
string |
|
last_name |
string |
|
street |
string |
|
building |
string |
|
staircase |
string |
|
floor |
string |
|
apartment |
string |
|
zip_code |
int |
|
city |
string |
|
country |
string |
|
company_name |
string |
|
company_department |
string |
|
company_reference |
string |
|
company_crn |
string |
|
exported_at |
timestamp |
|
order_creditcards
column |
type |
description |
order_id |
string |
the order id this creditcard information belongs to |
organisation_id |
string |
id of organisation |
profile_type |
string |
indicates which provider the creditcard purchase was made through (payex, adyen, klarna etc) |
expiration_date |
date |
expiration date as specified on card |
exported_at |
timestamp |
|
object_properties
column |
type |
description |
organisation_id |
string |
id of organisation |
object_type |
string |
indicates what kind of property this is. For now only product_id is used, meaning that the property is connected to a product. |
object_id |
string |
the object id. If type is product_id , the id points to the product. |
key |
string |
name of property |
value |
string |
value of property |
exported_at |
timestamp |
|
package_sharings
column |
type |
description |
id |
string |
sharing id |
organisation_id |
string |
id of organisation |
user_product_id |
string |
id of user_product (subscription) involved in the share |
sharer_id |
string |
id of account that is sharing user_product |
receiver_id |
string |
id of account that is receiving the user_product |
status |
string |
possible values inactive - inactivated share, active - active share, pending - waiting for receiver to accept invitation. |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
partial_payment_configurations
column |
type |
description |
id |
string |
configuration id |
organisation_id |
string |
id of organisation |
name |
string |
name of configuration |
period |
int |
period length |
payment_methods |
string |
comma-separated list of payment methods used in this configuration |
divisions |
string |
comma-separated list of divisions available for this configuration |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
payments
column |
type |
description |
id |
string |
payment id |
organisation_id |
string |
id of organisation |
order_id |
string |
|
product_id |
string |
|
user_product_id |
string |
|
payment_method |
string |
same as on "orders" |
payment_type |
string |
normal - the first normal payment on an order, credit - credit payment, autopay - recurring automatic payments provided by Payway payment engine, payment_profile_update - when a creditcard payment fails the customer has made a new payment from "my account". |
amount |
numeric |
|
product_code |
string |
|
campaign_package_id |
string |
if payment is for a campaign, this identifies the package the campaign is based on. |
title_code |
string |
|
status |
string |
possible values: created, payment_pending, closed, failed, cancelled . only closed payments are successful. if payment is failed, the reason can usually be found in error_code . |
client_language |
string |
The payment was initialized with this language, fetched from the browser. |
user_agent |
string |
User agent for the browser initializing the payment. |
error_code |
string |
error from payment provider |
error_description |
string |
error description from payment provider |
payment_reference |
string |
reference to payment at external payment provider. Matches "PSP reference" in case of Adyen and Billecta's internal invoice ID. |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
payment_results
column |
type |
description |
id |
string |
payment id |
organisation_id |
string |
id of organisation |
order_id |
string |
|
product_id |
string |
|
payment_method |
string |
same as on "orders" |
payment_type |
string |
normal - the first normal payment on an order, credit - credit payment, autopay - recurring automatic payments provided by Payway payment engine, payment_profile_update - when a creditcard payment fails the customer has made a new payment from "my account". |
error_code |
string |
error from payment provider |
error_description |
string |
error description from payment provider |
transaction_number |
string |
reference to payment at external payment provider. Matches "PSP reference" in case of Adyen and Billecta's invoice number. |
transaction_reference |
string |
If Adyen provicer, this is a combination of order_id and payment_id . In case of Billecta this corresponds to the invoice OCR number. |
payment_reference |
string |
reference to payment at external payment provider. Matches "PSP reference" in case of Adyen and Billecta's internal invoice ID. |
credited_transaction_number |
string |
Credit transaction number (Billecta invoice number) |
credited_transaction_reference |
string |
Credit transaction reference (Billecta OCR) |
credited_payment_reference |
string |
Credit payment reference (Billecta invoice id) |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
payment_renewal_retries
Notice
Payment renewal objects are removed after 30 days when the retry cycle has ended, either by exhausting the number of retries, or by making a successful renewal charge.
column |
type |
description |
id |
string |
id of payment renewal attempt |
organisation_id |
string |
id of organisation |
user_product_id |
string |
id of the user_product (subscription) |
payment_first_failed |
timestamp |
timestamp when the payment first failed |
last_retry |
timestamp |
timestamp for the last retry of the payment |
user_retry |
timestamp |
timestamp for the last retry initiated by the user from "my account" |
attempted_retries |
int |
number of retries |
last_error |
string |
last error message received from PSP (payment provider) |
paywalls
If Tulo Paywall is used.
column |
type |
description |
id |
string |
payment id |
organisation_id |
string |
id of organisation |
name |
string |
name of product |
product_code |
string |
the product code, usually part of a purchase-url if package or campaign |
title_code |
string |
title code for paywall |
offer_type |
int |
type of offer in paywall, package or campaign . |
offer_name |
string |
name of offer in paywall |
active |
bool |
true if paywall is active |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
products
column |
type |
description |
id |
string |
payment id |
organisation_id |
string |
id of organisation |
name |
string |
name of product |
product_code |
string |
the product code, usually part of a purchase-url if package or campaign |
integration_code |
string |
a code that is used when mapping a package or a campaign with the subscription system |
vat_code |
int |
the vat_code for the product |
campaign_package_id |
string |
if present, the product is a campaign and the value indicates which product (package) the campaign is based upon. |
is_package |
bool |
indicates if this product is a "package" |
transforms |
bool |
indicates if this product transforms into a normal package when it's time to renew the subscription |
title_code |
string |
|
paper_product |
bool |
indicates if product is a paper product |
ranking |
int |
ranking of product |
cost_center_id |
string |
cost center id if associated with a cost-center |
valid_from |
timestamp |
from when is this package/campaign valid for purchase. only applies to packages and campaigns |
valid_to |
timestamp |
this package/campaign is valid for purchase up to this time. only applies to packages and campaigns |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
product_descriptions
column |
type |
description |
product_id |
string |
product id |
organisation_id |
string |
id of organisation |
description |
string |
|
product_relations
column |
type |
description |
product_id |
string |
product id |
organisation_id |
string |
id of organisation |
included_product_id |
string |
the if of the product included |
column |
type |
description |
id |
string |
product id with tag |
organisation_id |
string |
id of organisation |
tag_id |
string |
tag_id of tag. |
exported_at |
timestamp |
|
profile_billing_addresses
column |
type |
description |
id |
string |
payment profile id |
organisation_id |
string |
id of organisation |
account_id |
string |
account_id holder of payment profile |
first_name |
string |
|
last_name |
string |
|
street |
string |
|
building |
string |
|
staircase |
string |
|
floor |
string |
|
apartment |
string |
|
zip_code |
int |
|
city |
string |
|
country |
string |
|
company_name |
string |
|
company_department |
string |
|
company_reference |
string |
|
company_crn |
string |
|
exported_at |
timestamp |
|
profile_billing_address_orders
column |
type |
description |
address_id |
string |
address_id |
organisation_id |
string |
id of organisation |
order_id |
string |
order id |
created |
timestamp |
|
column |
type |
description |
id |
string |
product id with tag |
organisation_id |
string |
id of organisation |
tag_name |
string |
name of tag. |
exported_at |
timestamp |
|
titles
column |
type |
description |
id |
string |
product id with tag |
organisation_id |
string |
id of organisation |
title_code |
string |
title code |
title_name |
string |
title name |
exported_at |
timestamp |
|
sessions
Only applicable for organisations using SSO version 2.
column |
type |
description |
id |
string |
product id with tag |
organisation_id |
string |
id of organisation |
session_id |
string |
id of session |
account_id |
string |
account_id belonging to session |
status |
string |
status for session, can either be loggedin or terminated . |
ip_check |
string |
checksum for ip-address |
user_agent |
string |
user_agent string |
created |
timestamp |
timestamp session created |
last_seen |
timestamp |
timestamp session last seen |
terminated_at |
timestamp |
timestamp session terminated/logged out |
exported_at |
timestamp |
|
vouchers
column |
type |
description |
id |
string |
product id with tag |
organisation_id |
string |
id of organisation |
type |
string |
Type of voucher. can be normal or purchase where the latter is a voucher purchased by a customer |
code |
string |
The voucher code |
product_code |
string |
The product code for the voucher |
access_days |
string |
Number of days access the voucher provides |
provision_service |
string |
Service responsible for the lifecycle of the provisioned product |
is_redeemed |
bool |
true if the voucher has been redeemed by a customer |
purchased_by |
string |
The account id of the account purchasing the voucher |
redeemed_by |
string |
The account id of the account redeeming the voucher |
user_product_id |
string |
The id provisioned product |
order_id |
string |
The purchase order order-id (XXXX-nnnn) |
order_period_id |
string |
The period id for the purchase order |
redeemed |
timestamp |
Timestamp when the voucher has been redeemed. |
expiring |
timestamp |
Timestamp for when the voucher expires |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
|
user_products
The user subscriptions.
column |
type |
description |
id |
string |
id of user_product |
organisation_id |
string |
id of organisation |
account_id |
string |
|
product_id |
string |
id of product subscription is based on |
product_code |
string |
code for product subscription is based on |
order_id |
string |
order id for the subscription if applicable |
campaign_package_id |
string |
|
valid_from |
timestamp |
subscription valid from datetime |
valid_to |
timestamp |
subscription valid to datetime |
cancellation_date |
timestamp |
if subscription was cancelled |
cancellation_reason |
string |
if subscription was cancelled |
cancelled_by |
string |
category of "user" who has cancelled the subscription, can be one of admin which indicates cancellation issued by customer-service or user which indicates the customer. |
deactivation_date |
timestamp |
if subscription was deactivated |
deactivation_reason |
string |
the reason for the deactivation: transformation - campaign transformed into normal subscription, upgrade - subscription was "upgraded" to other subscription, downgrade - subscription was "downgraded" to other subscription, third_party - deactivated by third-party, usually through API, expired - expired subscription, passive - when a subscription has been frozen and the customer has not payed until grace-period has expired, manual - manual deactivation, customer_cancel - customer cancelled subscription, customer_deactivation - customer cancelled subscription, subscription_system_stop - subscription system stopped the subscription, subscription_system_change_product - subscription system changed to another subscription, subscription_system_duplicate - deactivated due to duplicate subscription, subscription_system_no_customer_number - deactivated by subscription system sync due to no customer number on account, subscription_system_sync - deactivated by subscription system sync, subscription_system_change_payment_method - subscription system changed payment method and deactivated subscription |
grace_period_to |
timestamp |
if subscription is temporarily frozen due to payment problems, will be deactivated if it passes this datetime without intervention. |
provision_service |
string |
system responsible for the subscription lifecycle |
subscription_number |
string |
subscription number in subscription system |
title_code |
string |
|
days_active_until_cancelled |
int |
|
created_from |
string |
indicates if this subscription was created through a specific operation, such as a "campaign_transformation". |
status |
string |
possible values: activated, deactivated, cancelled, pending, frozen |
created |
timestamp |
|
updated |
timestamp |
|
exported_at |
timestamp |
timestamp when the row was exported |