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

# List all customization templates

> The endpoint returns a list of all customization templates for user.



## OpenAPI

````yaml GET /v1/templates/
openapi: 3.0.1
info:
  title: Truv API
  description: Truv API Documentation
  termsOfService: https://www.truv.com/legal/terms-of-use
  contact:
    email: support@truv.com
  version: v1
servers:
  - url: https://prod.truv.com
security:
  - ClientID: []
    AccessKey: []
tags:
  - name: Users
  - name: Bridge Token
  - name: Companies and Data Providers
  - name: Key Management
  - name: Account Links
  - name: Data Refresh
  - name: Customization Templates
  - name: Webhooks
  - name: Orders
  - name: Tasks
  - name: VOIE Reports
  - name: VOA Reports
  - name: Income Insights Reports
  - name: DDS Reports
  - name: Employment
  - name: Identity
  - name: Shifts
  - name: Pay Statements
  - name: Tax Documents
  - name: Parsed Documents
  - name: Reports
  - name: Uploaded Documents
  - name: Bank Accounts
  - name: Bank Statements
  - name: Deposit Switch Reports
  - name: Insurance Reports
  - name: Income Report
  - name: Scoring Attributes
  - name: Accounts
  - name: Transactions
  - name: Recurring Transactions
  - name: Document Collections
paths:
  /v1/templates/:
    parameters: []
    get:
      tags:
        - Customization Templates
      summary: List all customization templates
      description: The endpoint returns a list of all customization templates for user.
      operationId: v1_templates_list
      parameters:
        - name: query
          in: query
          description: Search query by a name.
          required: false
          schema:
            type: string
        - name: default_for_products
          in: query
          description: Default for products
          required: false
          schema:
            type: boolean
        - name: products
          in: query
          description: Filter by products
          required: false
          schema:
            type: string
            example: income
            enum:
              - income
              - employment
              - deposit_switch
              - pll
              - insurance
              - transactions
              - assets
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomizationTemplate'
        '401':
          description: HTTP 401 Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: HTTP 403 Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
components:
  schemas:
    CustomizationTemplate:
      required:
        - id
        - name
        - products
        - default_for_products
        - created_at
        - updated_at
      type: object
      properties:
        id:
          description: Unique identifier of the template.
          type: string
          readOnly: true
          maxLength: 32
          example: 48427a36d43c4d5aa6324bc06c692456
        name:
          description: Template name
          type: string
          default: My template
          maxLength: 128
        products:
          description: Products list this template applies to
          type: array
          items:
            type: string
            enum:
              - income
              - employment
              - deposit_switch
              - pll
              - insurance
              - transactions
              - assets
          default:
            - income
        default_for_products:
          description: If enabled, the template will be applied for the products by default
          type: boolean
        bridge:
          $ref: '#/components/schemas/CustomizationTemplateBridge'
        branding:
          $ref: '#/components/schemas/CustomizationTemplateBranding'
        orders:
          $ref: '#/components/schemas/CustomizationTemplateOrders'
        document_upload:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUpload'
        data:
          $ref: '#/components/schemas/CustomizationTemplateReturnedDocuments'
        reports:
          $ref: '#/components/schemas/CustomizationTemplateReportSettings'
        data_sources_flow:
          $ref: '#/components/schemas/CustomizationTemplateDataSourcesFlow'
        created_at:
          description: Timestamp when the template was created.
          type: string
          format: date-time
          readOnly: true
          example: '2022-05-04T11:30:00Z'
        updated_at:
          description: Timestamp when the template was updated last time.
          type: string
          format: date-time
          readOnly: true
          example: '2022-05-04T12:00:00Z'
    Error401:
      description: ''
      type: object
      properties:
        error:
          description: ''
          type: object
          properties:
            code:
              description: ''
              type: string
              example: authentication_failed
            message:
              description: ''
              type: string
              example: No such token
    Error403:
      description: ''
      type: object
      properties:
        error:
          description: ''
          type: object
          properties:
            code:
              description: ''
              type: string
              example: not_authenticated
            message:
              description: ''
              type: string
              example: Authentication credentials were not provided.
    CustomizationTemplateBridge:
      type: object
      properties:
        texts:
          description: >-
            Deprecated: Use product_settings instead. This field will be removed
            in future versions.
          type: object
          allOf:
            - $ref: '#/components/schemas/CustomizationBridgeTexts'
        hide_truv_logo:
          description: Hide the Truv logo
          type: boolean
        hide_support_button:
          description: Hide the support button
          type: boolean
        product_settings:
          description: List of product types configurations
          type: array
          items:
            $ref: '#/components/schemas/CustomizationBridgeProductsConfig'
          example:
            - product_type: assets
              texts:
                search_header: Find your bank
                success_title: Success!
                success_subtitle: Your bank account has been connected
                success_cta: Continue
      description: Settings for bridge
      default: {}
    CustomizationTemplateBranding:
      type: object
      properties:
        company_name:
          description: Client name
          type: string
          nullable: true
          maxLength: 255
        accent_color:
          description: Main color
          type: string
          example: '#aabb00'
          nullable: true
        background_color:
          description: Background color
          type: string
          example: rgba(0, 0, 255, 0.5)
          nullable: true
        logo:
          description: Company logo image.
          type: string
          format: uri
          nullable: true
        hide_confetti:
          description: Option to hide confetti on the success screen
          type: boolean
        custom_end_user_agreement:
          $ref: '#/components/schemas/CustomizationTemplateAgreement'
      description: Settings for branding
      default: {}
    CustomizationTemplateOrders:
      type: object
      properties:
        link_expiration:
          description: Expiration of the link to the landing page
          type: string
          nullable: true
          example: '24'
          enum:
            - '24'
            - '48'
            - '72'
            - '120'
            - '240'
            - '336'
            - '360'
            - '480'
            - '1440'
            - null
        auto_open:
          description: >-
            Product name to auto-open in the widget for order-based flows, or
            'disabled' to always suppress auto-open
          type: string
          nullable: true
          example: income
          enum:
            - income
            - assets
            - insurance
            - disabled
        custom_field_title:
          description: Custom field title
          type: string
          nullable: true
          maxLength: 255
        support_email:
          description: Email address for customer support
          type: string
          format: email
          nullable: true
          maxLength: 254
        auto_complete_after_hours:
          description: >
            Hours to wait after a successful data collection before
            automatically completing the order. Defaults to 24. Applies only
            when `skip_behavior` has at least one product set to `expire`.
          type: integer
          nullable: true
          minimum: 1
          maximum: 720
        skip_behavior:
          description: >
            Per-product skip behavior applied to orders using this template.
            Keys must be in this template's products list. Values:

            - `disabled`: product is required.

            - `all`: skip is allowed only after the user has tried every data
            provider for this product in the order.

            - `any`: skip is allowed after the user has tried at least one data
            provider for this product in the order.

            - `expire`: same as `any`, plus the order is auto-completed after
            `auto_complete_after_hours`.
          type: object
          nullable: true
          additionalProperties:
            type: string
            example: disabled
            enum:
              - disabled
              - all
              - any
              - expire
          example:
            income: any
            assets: expire
        allow_additional_connections:
          description: >
            Product types for which an end user can add more than one connection
            in a single order. Overrides the account-level default. Omit or set
            to null to inherit the default; pass `[]` to disallow all additional
            connections; pass a subset of the template's products to allow only
            those.
          type: array
          nullable: true
          items:
            type: string
            enum:
              - income
              - employment
              - deposit_switch
              - pll
              - insurance
              - transactions
              - assets
          example:
            - income
        notification_settings:
          description: >-
            Configuration for order notifications applied to orders created with
            this template.
          type: object
          properties:
            suppress_user_notifications:
              description: >-
                When true, suppresses all user-facing notifications. If enabled,
                first_notification_delay_hours is ignored.
              type: boolean
              default: false
              example: false
            first_notification_delay_hours:
              description: >-
                Number of hours to delay the first notification. Default is 0
                (immediate). Ignored when suppress_user_notifications is true.
              type: integer
              default: 0
              example: 12
              minimum: 0
        first_sms:
          $ref: '#/components/schemas/CustomizationTemplateFirstSMS'
        reminder_sms:
          $ref: '#/components/schemas/CustomizationTemplateReminderSMS'
        first_email:
          $ref: '#/components/schemas/CustomizationTemplateFirstEmail'
        reminder_email:
          $ref: '#/components/schemas/CustomizationTemplateReminderEmail'
        refresh_first_sms:
          $ref: '#/components/schemas/CustomizationTemplateFirstSMS'
        refresh_reminder_sms:
          $ref: '#/components/schemas/CustomizationTemplateReminderSMS'
        refresh_first_email:
          $ref: '#/components/schemas/CustomizationTemplateFirstEmail'
        refresh_reminder_email:
          $ref: '#/components/schemas/CustomizationTemplateReminderEmail'
        first_call:
          $ref: '#/components/schemas/CustomizationTemplateFirstCall'
        reminder_call:
          $ref: '#/components/schemas/CustomizationTemplateReminderCall'
        landing:
          $ref: '#/components/schemas/CustomizationTemplateLanding'
        bank_info:
          $ref: '#/components/schemas/CustomizationTemplateBankInfo'
      description: Settings for orders
      default: {}
    CustomizationTemplateDocumentUpload:
      type: object
      properties:
        is_enabled:
          description: >-
            If document upload is enabled for the template or not. Set to null -
            for global settings. If set to true document types should be enabled
            in the template explicitly.
          type: boolean
          nullable: true
        freddie_aim_check:
          $ref: >-
            #/components/schemas/CustomizationTemplateDocumentUploadFreddieAimCheck
        paystub:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        w2:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        f1099:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        f1040:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        insurance_home_policy:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        insurance_auto_policy:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        volunteer_letter:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
        other:
          $ref: '#/components/schemas/CustomizationTemplateDocumentUploadConfig'
      description: >
        Settings for document upload.


        When the `other` document type is enabled, end users can upload
        arbitrary documents that don't fit the other categories. Truv does not
        parse these documents into structured data (they are captured only) —
        you can collect the uploaded files through the Uploaded Documents API
        (`GET /v1/links/{link_id}/documents/`).
      default: {}
    CustomizationTemplateReturnedDocuments:
      type: object
      properties:
        paystubs_count:
          description: >-
            The number of most recent paystubs to include in the response.
            Specify the desired count of paystubs to be returned.
          type: integer
          nullable: true
          example: 6
        w2_count:
          description: >-
            The number of most recent W2 forms to include in the response.
            Specify the desired count of W2 forms to be returned.
          type: integer
          nullable: true
          example: 3
        paystubs_ytd_count:
          description: >-
            The number of most recent year-to-date paystubs to include in the
            response. Specify the desired count of year-to-date paystubs to be
            returned.
          type: integer
          nullable: true
          example: 3
        extended_history:
          $ref: '#/components/schemas/CustomizationTemplateExtendedHistory'
      description: Settings for returned documents data
      default: {}
      nullable: true
    CustomizationTemplateReportSettings:
      type: object
      properties:
        hidden_sections:
          $ref: '#/components/schemas/CustomizationTemplateHiddenSections'
        days_requested:
          description: >-
            The specific duration in days for which the VOA report is requested
            to be generated. If not specified, returns the default value.
          type: integer
          example: 60
          maximum: 730
          minimum: 30
          nullable: true
        large_deposit_threshold:
          description: >-
            Amount that must be met or exceeded for deposits to be marked as
            large for VOA reports. If not specified, returns the default value.
          type: integer
          example: 500
          maximum: 100000
          minimum: 0
          nullable: true
        transaction_categories:
          description: >-
            List of transaction categories to include in VOA/DVOE reports. Only
            transactions with at least one matching category will be shown. If
            not specified or empty, all transactions are included. Applies to
            VOA JSON, VOA PDF, and DVOE PDF reports only.
          type: array
          items:
            type: string
            maxLength: 100
          example:
            - Food & Dining
            - Travel
            - Shopping
          nullable: true
        transaction_account_types:
          description: >-
            List of account types to include in VOA/DVOE reports. Only
            transactions from accounts matching these types will be shown. If
            not specified or empty, all account types are included. Applies to
            VOA JSON, VOA PDF, and DVOE PDF reports only.
          type: array
          items:
            type: string
            maxLength: 100
          example:
            - CHECKING
            - SAVINGS
          nullable: true
        transaction_account_subtypes:
          description: >-
            List of account subtypes to include in VOA/DVOE reports. Only
            transactions from accounts matching these subtypes will be shown. If
            not specified or empty, all account subtypes are included. Applies
            to VOA JSON, VOA PDF, and DVOE PDF reports only.
          type: array
          items:
            type: string
            maxLength: 100
          example:
            - FIXED_ANNUITY
            - LOCKED_IN_RETIREMENT_ACCOUNT
            - PLAN_401_A
          nullable: true
        income_insights:
          $ref: '#/components/schemas/CustomizationTemplateIncomeInsights'
      description: Settings for reports
      nullable: true
    CustomizationTemplateDataSourcesFlow:
      description: >-
        Data sources and flow configuration per product type. Supported product
        keys: employment, income, insurance.
      type: object
      additionalProperties: false
      properties:
        employment:
          $ref: '#/components/schemas/CustomizationTemplateDataSourcesFlowEmployment'
        income:
          $ref: '#/components/schemas/CustomizationTemplateDataSourcesFlowIncome'
        insurance:
          $ref: '#/components/schemas/CustomizationTemplateDataSourcesFlowInsurance'
    CustomizationBridgeTexts:
      type: object
      properties:
        search_header:
          description: Search screen header text
          type: string
          nullable: true
          maxLength: 500
        success_title:
          description: Success screen title
          type: string
          nullable: true
          maxLength: 500
        success_subtitle:
          description: Success screen subtitle
          type: string
          nullable: true
          maxLength: 500
        success_cta:
          description: Success button label
          type: string
          nullable: true
          maxLength: 500
      default: {}
    CustomizationBridgeProductsConfig:
      required:
        - product_type
      type: object
      properties:
        product_type:
          description: Product type
          type: string
          enum:
            - income
            - employment
            - deposit_switch
            - pll
            - insurance
            - transactions
            - assets
          example: income
        data_source:
          description: Data source
          type: string
          enum:
            - payroll
            - docs
            - insurance
            - financial_accounts
            - tax
          example: financial_accounts
        texts:
          $ref: '#/components/schemas/CustomizationBridgeTexts'
    CustomizationTemplateAgreement:
      type: object
      properties:
        header:
          description: End-user agreement or privacy policy label
          type: string
          maxLength: 500
          nullable: true
        url:
          description: End-user agreement or privacy policy URL
          type: string
          format: uri
          nullable: true
          maxLength: 255
      default: {}
    CustomizationTemplateFirstSMS:
      type: object
      properties:
        text:
          description: SMS text message
          type: string
          nullable: true
        apply_for_reminder:
          description: >-
            If enabled, the first SMS text message will also be used as the
            reminder
          type: boolean
      default: {}
    CustomizationTemplateReminderSMS:
      type: object
      properties:
        text:
          description: SMS text message
          type: string
          nullable: true
      default: {}
    CustomizationTemplateFirstEmail:
      type: object
      properties:
        subject:
          description: Subject and title of the email
          type: string
          maxLength: 500
          nullable: true
        header:
          description: Main header content of the email
          type: string
          maxLength: 2000
          nullable: true
        button:
          description: Text within the call-to-action button
          type: string
          maxLength: 500
          nullable: true
        caption:
          description: Small text below the call-to-action button
          type: string
          maxLength: 2000
          nullable: true
        apply_for_reminder:
          description: >-
            If enabled, the first email fields will also be used as the reminder
            email fields
          type: boolean
      default: {}
    CustomizationTemplateReminderEmail:
      type: object
      properties:
        subject:
          description: Subject and title of the email
          type: string
          maxLength: 500
          nullable: true
        header:
          description: Main header content of the email
          type: string
          maxLength: 2000
          nullable: true
        button:
          description: Text within the call-to-action button
          type: string
          maxLength: 500
          nullable: true
        caption:
          description: Small text below the call-to-action button
          type: string
          maxLength: 2000
          nullable: true
      default: {}
    CustomizationTemplateFirstCall:
      type: object
      properties:
        text:
          description: >-
            Text message that will be spelled out during an automated phone
            call. The message should be composed of alphanumeric characters and
            standard punctuation.
          type: string
          maxLength: 1000
          nullable: true
        delay_seconds:
          description: Delay in seconds after the order is placed.
          type: integer
          maximum: 10800
          minimum: 60
          nullable: true
        apply_for_reminder:
          description: >-
            Flag that determines whether the associated text message should be
            utilized in automated reminder phone calls
          type: boolean
      default: {}
    CustomizationTemplateReminderCall:
      type: object
      properties:
        text:
          description: Call text
          type: string
          maxLength: 1000
          nullable: true
        delay_seconds:
          description: Call delay in seconds
          type: integer
          maximum: 864000
          minimum: 600
          nullable: true
      default: {}
    CustomizationTemplateLanding:
      type: object
      properties:
        header:
          description: Title header text
          type: string
          maxLength: 500
          nullable: true
        body:
          description: Body text
          type: string
          maxLength: 2000
          nullable: true
        hide_faq:
          description: If enabled, FAQ will be suppressed on the Landing page
          type: boolean
        success_screen:
          $ref: '#/components/schemas/CustomizationTemplateScreen'
        expired_screen:
          $ref: '#/components/schemas/CustomizationTemplateScreen'
      default: {}
    CustomizationTemplateBankInfo:
      type: object
      properties:
        bank_name:
          title: Bank name
          type: string
          maxLength: 128
          minLength: 1
          nullable: true
    CustomizationTemplateDocumentUploadFreddieAimCheck:
      type: object
      properties:
        is_enabled:
          description: Enable Freddie Mac AIM check document upload for this template.
          type: boolean
          nullable: true
        seller_id:
          description: Freddie Mac seller ID used for the AIM check.
          type: string
          nullable: true
          maxLength: 255
      description: >-
        Freddie Mac AIM check settings for this template. Each value takes
        priority over the account-level setting; null falls back to it.
      default: {}
    CustomizationTemplateDocumentUploadConfig:
      type: object
      properties:
        is_enabled:
          description: If the document type is enabled
          type: boolean
        is_required:
          description: If the document type is required
          type: boolean
        title:
          description: Title on the first document upload screen
          type: string
          nullable: true
        description:
          description: Description on the first document upload screen
          type: string
          nullable: true
          example: PDF files only under 15 MB.
        button:
          description: Text on the upload button
          type: string
          nullable: true
          example: Upload
        submit_title:
          description: Title on the submit screen
          type: string
          nullable: true
        min_count:
          description: Minimum required number of uploaded documents
          type: integer
          nullable: true
          example: 2
        max_count:
          description: Maximum required number of uploaded documents
          type: integer
          nullable: true
          example: 5
      default: {}
    CustomizationTemplateExtendedHistory:
      type: object
      properties:
        statements_history_days:
          description: >-
            The number of days of paystub history to fetch from the payroll
            source.
          type: integer
          nullable: true
          example: 180
          maximum: 730
          minimum: 90
      description: Settings for extended data collection
      default: {}
    CustomizationTemplateHiddenSections:
      type: object
      properties:
        deposits:
          description: Hide Deposits in VOIE reports
          type: boolean
        large_deposits:
          description: Hide Large Deposits in VOA reports
          type: boolean
        historical_payment_summary:
          description: Hide Historical Pay Summary
          type: boolean
      description: Sections to hide in PDF reports
    CustomizationTemplateIncomeInsights:
      type: object
      properties:
        days_requested:
          description: >-
            The specific duration in days for which an income insights report is
            requested to be generated.
          type: integer
          example: 60
          maximum: 730
          minimum: 30
          nullable: true
        consumer_report_permissible_purpose:
          description: Describes the reason you are generating an income insights report.
          type: string
          example: WRITTEN_INSTRUCTION_OTHER
          nullable: true
          enum:
            - ACCOUNT_REVIEW_CREDIT
            - ACCOUNT_REVIEW_NON_CREDIT
            - EMPLOYMENT
            - EXTENSION_OF_CREDIT
            - LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING
            - LEGITIMATE_BUSINESS_NEED_OTHER
            - WRITTEN_INSTRUCTION_PREQUALIFICATION
            - WRITTEN_INSTRUCTION_OTHER
            - null
      description: Default parameters for income insights reports
    CustomizationTemplateDataSourcesFlowEmployment:
      type: object
      additionalProperties: false
      minProperties: 1
      properties:
        flow:
          description: >-
            Specifies the presentation order and fallback behavior for multiple
            data sources in the widget.
          type: string
          example: fallback
          enum:
            - fallback
            - waterfall
            - smart_routing
            - manual_selection
        data_sources:
          description: >-
            Data sources to use for this product type, in the order they are
            attempted.
          type: array
          minItems: 1
          uniqueItems: true
          example:
            - payroll
          items:
            type: string
            enum:
              - payroll
              - docs
              - financial_accounts
    CustomizationTemplateDataSourcesFlowIncome:
      type: object
      additionalProperties: false
      minProperties: 1
      properties:
        flow:
          description: >-
            Specifies the presentation order and fallback behavior for multiple
            data sources in the widget.
          type: string
          example: fallback
          enum:
            - fallback
            - waterfall
            - smart_routing
            - manual_selection
        data_sources:
          description: >-
            Data sources to use for this product type, in the order they are
            attempted.
          type: array
          minItems: 1
          uniqueItems: true
          example:
            - payroll
          items:
            type: string
            enum:
              - payroll
              - financial_accounts
              - docs
              - tax
    CustomizationTemplateDataSourcesFlowInsurance:
      type: object
      additionalProperties: false
      minProperties: 1
      properties:
        flow:
          description: >-
            Specifies the presentation order and fallback behavior for multiple
            data sources in the widget.
          type: string
          example: fallback
          enum:
            - fallback
            - waterfall
            - smart_routing
            - manual_selection
        data_sources:
          description: >-
            Data sources to use for this product type, in the order they are
            attempted.
          type: array
          minItems: 1
          uniqueItems: true
          example:
            - insurance
          items:
            type: string
            enum:
              - insurance
              - docs
    CustomizationTemplateScreen:
      type: object
      properties:
        header:
          description: Title header text
          type: string
          maxLength: 500
          nullable: true
        body:
          description: Body text
          type: string
          maxLength: 2000
          nullable: true
      default: {}
  securitySchemes:
    ClientID:
      type: apiKey
      description: Client ID
      name: X-Access-Client-Id
      in: header
    AccessKey:
      type: apiKey
      description: Client Access Key
      name: X-Access-Secret
      in: header

````