> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thanx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Certification

> A Consumer API integration must be certified before production credentials are made available.

## Process

To initiate the certification process, a build (app or web) should be submitted
to the Thanx Developer Support team
(<a href="mailto:developer.support@thanx.com">[developer.support@thanx.com](mailto:developer.support@thanx.com)</a>).
Once a build is submitted for certification, feedback will be delivered within
**ten business days**. If no critical feedback is provided, the build will be
certified and production API credentials will be issued. If critical feedback
is provided, integration partners should address the feedback and resubmit a new
certification candidate build, after which the **10 business day** certification
review cycle will begin again.

## Submission

Depending on the experience being developed, the following submission formats
are supported:

* **Web**
  * URL of web experience
* **iOS**
  * Firebase App Distribution link
  * TestFlight build. For the specific emails to whitelist, please request them
    from <a href="mailto:developer.support@thanx.com">[developer.support@thanx.com](mailto:developer.support@thanx.com)</a>.
* **Android**
  * Firebase App Distribution link
  * APK file

All the above experiences must be pointing the Thanx Sandbox APIs. A build
should be submitted for each experience (web, iOS, Android).

## Legal Requirements

* User must agree to the Thanx Privacy Policy and Terms of Service when
  creating a loyalty account. The language should read
  > By signing up you agree to our
  > **[privacy policy](https://dashboard.thanx.com/privacy)** and our
  > **[terms of service](https://dashboard.thanx.com/terms)**
* User must be able to navigate to the Thanx Privacy Policy and Terms of
  service from both App and Web experiences when logged in (may also be
  mentioned in another document that’s readily available in the app, e.g. the
  brand's Terms)
* Any screen where the user is enrolling their credit card for loyalty tracking
  must have the correct legal text (see
  [enrollment best practices](/consumer/best-practices/enrollment#requirements-for-implementation))
  * There must be 2 buttons
    * One button must include “Register card”
    * The other allow to skip enrolling the card
  * Legal content should be visible at all times
  * Links must be visible and clickable

## General

* API requests must include all [required headers](/consumer/usage/headers)
* API requests must not be unnecessarily duplicated
* API error messages should be displayed to the user
* API requests should only be issued on a reasonable frequency and in response
  to end-user interactions (e.g. Don't rapidly poll API for changes)

## Account Creation & Authentication

* Thanx must be the only authentication provider available for users
  * Thanx tools do not work when other authentication mechanisms are in place
    (eg. Google SSO, email/password)
* User can create account via the
  [create user endpoint](/consumer/users/create-user)
* User can authenticate via passwordless email following
  [Thanx SSO](/consumer/sso/overview) guidelines
* Users should be required to provide a name to complete registration
* A new user should be prompted to sign up
* An existing user should be sent a login email (experience should display a
  message about an email being sent)

## Account Management

* User can [view](/consumer/users/get-user) and
  [update](/consumer/users/update-user) account details (email, first name,
  last name, etc)
* User can submit a request for [account closure](/consumer/users/delete-user)
* User can [view](/consumer/communication-settings/get) and
  [update](/consumer/communication-settings/update) communication settings

## Card Management

* [API-based enrollment](/consumer/cards/create-card)
  * User can enroll a credit card
  * User can [archive a credit card](/consumer/cards/delete-card)
* Experience should support displaying a list of cards
* Experience should allow a user to link a card (Visa, Mastercard, American Express)
* Experience should allow a user to delete a card

## Purchases

* User can view [recent purchases](/consumer/purchases/get-purchases)

## Reward Redemption

* User can [view available rewards](/consumer/rewards/get-rewards)
* User can [activate](/consumer/rewards/activate-reward) and
  [finalize](/consumer/rewards/finalize-reward) a reward
* Reward type support
  * Only in-use reward types need to be supported
  * `manual` - redemption conducted manually (e.g. in-store, showing server/cashier)
  * `automatic` - cash-back pushed directly to a user's credit card once a
    qualifying purchase is made
* Supported coupon code formats:
  * Only in-use coupon code types need to be supported
  * `raw`
  * `qrcode`
  * `barcode39`
  * `barcode39extended`
  * `barcode93`
  * `barcode128`
  * `barcode_upc_a`
  * `barcode_ean_8`
  * `barcode_ean_13`
  * `barcode25interleaved`
* Reward activation request should be made only on user action
* Manual redemption rewards should display a countdown timer

<Warning>
  When testing fraud-protected reward types (intro, invite, birthday, winback,
  newsletter), use a **unique, real card per test account**. Shared test cards
  (e.g. Visa `4111…`) match on card fingerprint across accounts and merchants,
  which flags the reward as fraudulent and makes it disappear on activation.
  General API testing with shared test cards is fine — only fraud-protected
  reward activation hits this.
</Warning>

## Expression of Loyalty

* The following expressions of loyalty are optional and the usage of these can be
  determined by an integration partner's creative/marketing teams.
* That said, a requirement of the card networks is that a user must be able to
  receive value in exchange for enrolling their card and authorizing Thanx for
  automated data capture. Support for points, tiers, or both is required to
  satisfy this requirement.
* Points
  * User can see [their current points balance](/consumer/points/get-points-balance)
  * User can view [info of how they earn points](/consumer/points/get-experiences)
  * User can view [configured rewards in the marketplace (points products)](/consumer/points/get-products)
  * User can [exchange points for points products](/consumer/points/exchange-product)
* Tiers
  * User can see [tier info](/consumer/tiers/get-configs), including
    thresholds and a description of tier perks
  * User can [view their current tier status](/consumer/tiers/get-statuses)

## Push Notifications (Mobile Only)

* For custom app builds, push notification certificates (Apple APNS and Google
  FCM) must be provided to Thanx developer support
  * APNS push notification certificate should be provided to Thanx
  * FCM server key and server ID should be provided to Thanx
* User can [register for push notifications](/consumer/push/create-push-registration)
  and the app should make a call to register the push notification token with
  Thanx

## Feedback (Optional)

* This functionality is optional and will only be validated if implemented
* User can [get feedback prompts](/consumer/feedbacks/get-feedbacks) (created
  post purchase creation)
* User can [submit feedback](/consumer/feedbacks/update-feedback) (rating and
  review)
* Experience should submit numerical rating and optional text feedback
* Experience should present the option to leave text feedback for each purchase
* Rating should be on a 10 point scale

## Receipt Submission (Optional)

* This functionality is optional and will only be validated if implemented
* User can view [pending receipts](/consumer/receipts/get-receipts)
* User can [upload](/consumer/receipts/get-upload-url) and
  [submit](/consumer/receipts/create-receipt) a receipt
* Experience should request all required information from the user
* Experience should allow the user to choose a card to associate the receipt
  with, if they have any

## Product Guide

<Snippet file="certification/product-guide.mdx" />

## Postman API Collection

Here you will find the **Custom App - Web Experience API Postman Collection** to import directly within your API testing tool.
This collection is already completed and includes sample values for the credentials.

Please replace them with the ones provided by your Thanx representative in order to achieve successful API calls.

You can find more information about credentials and headers on the [following page](/consumer/usage/headers), or check the documentation for the specific API endpoint you want to call to ensure that all credentials are placed correctly.

<a href="/assets/Custom_App_Postman_Collection.json" download>
  Download Postman Collection
</a>
