Data License Setup

Data licensing is the cornerstone of our business model, allowing us to provide you with OCR services at no cost.

To provide your business with our complimentary OCR service, we require the authorization to monetize de-identified data extracted from your receipts. As part of this process, it's necessary to establish data licenses, for which we will supply template agreements.

The consent to establishing a data license can exist via a small update to the Terms of Service agreement for your site or application, or as a consent screen built into the UI of the app/site.

What is a data license?

A data license is just what it sounds like—a legal agreement between a user (or business) and a business describing the terms under which the user’s data can be monetized.

This generally covers:

  1. Who the agreement is between or among.
  2. What assets are part of the exchange (data i.e., transaction data, user id & specific rewards, i.e., cashback,) i.e., the terms.
  3. How long the terms of the agreement are active, i.e., the date of termination.
  4. For what purposes (use cases) the data can be used, i.e., analytics, attribution, retargeting, etc.

In comparison to the Terms of Service agreements found in most every app, data licensing agreements are unique in that the proposed terms are exclusively for the user’s data.

The mytiki data licensing and enforcement technology allows your users to claim and prove legal ownership over their data and subsequently allows for users to participate in programs to share, distribute or monetize their asset.


Data Integrity and Compliance Enforcement

We ensure every data transaction is transparent and compliant, meticulously tracking from user opt-in to final use within strict licensing terms. Our platform enforces data usage precisely as intended, incorporating processes like de-duplication and de-identification to maintain integrity and security.

Legal Language Integration Options

There are two different options for including the legal language in your product:

  1. Direct Inclusion via Popup Screen (UDLA)

    • You can place a User Data License Agreement (UDLA) directly into your application via a popup screen. This screen can be integrated wherever it makes the most sense in your user journey within the app. We provide a template for this purpose.
  2. Integration into Terms of Service Agreement

    • Alternatively, you can embed the legal language directly into your Terms of Service Agreement. We also provide a template for this integration method.

Client Library

Integrating the data licensing process into your application is streamlined through our Client Library. This section of the guide will walk you through obtaining the terms of the license agreement and creating a license upon user consent, utilizing the library's capabilities.

Accessing the Terms of the Agreement

To present your users with the terms of the data license agreement, our Client Library simplifies the process. With the information you've already configured in the library, we automatically generate a pre-qualified agreement. To retrieve these terms in a user-friendly Markdown format, use the TikiClient.terms() method:

let terms = TikiClient.terms();
val terms = TikiClient.terms();
let terms = TikiClient.terms();

This method fetches the terms, allowing you to display them directly within your application interface, ensuring users can easily review before agreeing to license their data.

License Creation upon User Agreement

After your users review and agree to the terms, the next step is to generate the license. This is done using the TikiClient.createLicense method. This method crafts a default license that enables the collection of data from both physical and email receipts. The license is created per device, and once established, it's stored in mytiki, negating any future need for recreation.

If the terms are embedded into your app's standard terms of service, call createLicense upon sign up or acceptance of your published notice that the terms have been updated.

TikiClient.createLicense { license in
val activity = getActivity()
val license = TikiClient.createLicense(activity).await();
let license = await TikiClient.createLicense();

It's essential to invoke this method once per device to ensure each device is appropriately licensed. The created license is then registered within the mytiki storage system, providing a seamless experience without the need for future license generation.

By incorporating these steps into your application's setup process, you ensure compliance with our data licensing agreement while leveraging our OCR services. This process not only facilitates legal transparency but also enhances user trust by clearly communicating the terms and obtaining explicit consent.


Your application can communicate directly with TIKI REST API to integrate the data licensing process. By creating the license straight in the REST API, it is understood that the client agreed with the license terms, which will be embeded in the license record.

License Request JSON

After your users review and agree to the terms, the next step is to generate the license request that will be sent to the REST API endpoint. This request is a JSON with the following parameters:

  • ptr: The Pointer Records identifies data stored in your system, similar to a foreign key.
  • origin: The application which is the origin of the data. Follow a reverse-DNS syntax. i.e. com.myco.myapp
  • terms: The terms to which the user must have agreed to create the license.
  • description: A human-readeable description of the license.
  • tags: An array of metadata tags describing the asset, for your use in record search and filtering.
  • uses: An array defining how and where an asset may be used, in the format of usecases and destinations, per the terms of the license. Wildcards * can be used to define all destinations and usecases.
  • signature: The SHA3-256 signature of the license request, before adding itself.


  "origin": "com.mytiki.example",
  "signature": "tDlYbXvNy116/6WmYZmtC+CNKQVjsusiLn2yPtA7B8QrvBA8zMSxHt0m83Ye3Zq1uchMhrBxyt+ITJ4qhSiaCLEw1n9Rh8c5jQBswEQSUT5cKDMGOOk3b0TPgC6h0VRaef6PTSXt7McNOQBB49MQx+iG/mtqvHuzEupLBU+7FTsZ/1lZnsr/BXFoUT12LopOHQPmkbHegtxRo3VMXq4dXTkCtucA9ypvPFWrJYxpZAnBQqyDPRXmwKC3z7vtMWU07aDxG+3l++0YjKn5ta0swNM+muDZ0uecYlQ0D1ruDvcyy7oDGAj68T7D1Q+H+yDpS4Q87y24RfLbo5rHfQgzAg==",
  "terms": "These are the terms of service for [...]",
  "description": "TIKI Docs License",
  "tags": [
  "uses": [
      "usecases": [
      "destinations": [
  "ptr": "documentation_example"

License Creation upon User Agreement

With the license request object built, you can now send a POSTrequest to the endpoint to create a new license.

curl --request POST \
  --url \
  --header 'Authorization: Bearer <ADDRESS TOKEN> \
  --header 'Content-Type: application/json' \
  --data '<license request json>'