token-io Sub-TPPs API

These endpoints are for resellers using Token.io's licence to create, retrieve and delete sub-TPPs.

Operations 5

POST /member/sub-tpps Create a sub-TPP #
GET /member/sub-tpps Get sub-TPPs #
GET /member/sub-tpps/{subTppId} Get sub-TPP information #
DELETE /member/sub-tpps/{subTppId} Delete a sub-TPP #
GET /member/sub-tpps/{subTppId}/children Get sub-TPP children #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/token-io-sub-tpps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

token-io-sub-tpps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1.0'
  title: Token.io's Open Banking API for TPPs Account on File Sub TP Ps API
  description: '<b>Token.io''s Open Banking API</b><br/><br/>Token.io Support: <a href="https://support.token.io" target="_blank">support.token.io</a><br/><br/>The Token.io Open Banking API enables you to connect securely with banks for a range of services.<br/><br/> Using our API you can: <ul><li>provide authorized access to an authenticated user''s account information</li><li>get information on specific banks</li><li>initiate authorization with a user-selected bank</li><li>initate and track single immediate payments and future dated payments</li><li>use variable recurring payments (VRP) to grant long-held consents to Payment Initiation Service Providers (PISPs) to initiate series of payments from users'' bank accounts</li><li>carry out settlements, payments and refunds using our settlement accounts</li></ul><br/>For more information see our <a href="https://developer.token.io/token_rest_api_doc/content/e-rest/dashboard-intro.htm" target="_blank">developer documentation</a>.'
servers:
- url: https://api.token.io
tags:
- name: Sub-TPPs
  description: These endpoints are for resellers using Token.io's licence to create, retrieve and delete sub-TPPs.
paths:
  /member/sub-tpps:
    post:
      tags:
      - Sub-TPPs
      summary: Create a sub-TPP
      description: The `POST /member/sub-tpps` endpoint creates a new sub-TPP for a reseller.
      operationId: GatewayService.CreateSubTpp
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubTppRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSubTppResponse'
        '400':
          description: The client specified an invalid argument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: The authorization information is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Permission to access this endpoint is denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: The requested entity, such as a sub-tpp, was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_429'
        '500':
          description: An unexpected or internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        '501':
          description: The operation was not implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_501'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_503'
        '504':
          description: Gateway has timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_504'
      deprecated: false
      security:
      - Bearer: []
      - BasicAuth: []
      x-hideTryItPanel: true
    get:
      tags:
      - Sub-TPPs
      summary: Get sub-TPPs
      description: The `GET /member/sub-tpps` endpoint retrieves a list of all sub-TPPs for a reseller.
      operationId: GatewayService.RetrieveSubTpps
      parameters:
      - name: page.offset
        in: query
        description: The offset for the current page. If the offset has been provided in the request, this offset will be equal to the provided one. But if no offset was provided in the request (<i>i.e.</i> this is the first page) and the page is not empty, this field will be populated with a non-empty string. This may be helpful for loading the same page again, which might not always be possible with an empty offset due to a dynamic nature of the data. <br/>The offset is not visible to a user and should not be parsed and/or understood in any way.
        required: false
        style: form
        explode: true
        schema:
          type: string
        example: LerV6Jmex
      - name: page.limit
        in: query
        description: The maximum number of records to return. This must be less than 200.
        required: true
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          example: 175
          default: 1
      - name: filter.byCompanyNames
        in: query
        description: Filters the sub-TPPs by the list of company names submitted.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            example: '["Company A","Company B","Company C"]'
      - name: filter.byRegistrationDates
        in: query
        description: Filters the sub-TPPs by the list of registration dates submitted.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            example: '["22-03-21","19-05-21","27-07-21"]'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveSubTppsResponse'
        '400':
          description: The client specified an invalid argument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: The authorization information is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Permission to access this endpoint is denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: The requested entity, such as a sub-tpp, was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_429'
        '500':
          description: An unexpected or internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        '501':
          description: The operation was not implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_501'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_503'
        '504':
          description: Gateway has timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_504'
      deprecated: false
      security:
      - Bearer: []
      - BasicAuth: []
      x-hideTryItPanel: true
  /member/sub-tpps/{subTppId}:
    get:
      tags:
      - Sub-TPPs
      summary: Get sub-TPP information
      description: The `GET /member/sub-tpps/{subTppId}` endpoint retrieves the details of the specified sub-TPP for a reseller.
      operationId: GatewayService.RetrieveSubTpp
      parameters:
      - name: subTppId
        in: path
        description: This id specifies the sub-TPP to be retrieved.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: 8d54f066-c14a-47c0-b58b-fec6b0ed6b4c
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveSubTppResponse'
        '400':
          description: The client specified an invalid argument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: The authorization information is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Permission to access this endpoint is denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: The requested entity, such as a sub-tpp, was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_429'
        '500':
          description: An unexpected or internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        '501':
          description: The operation was not implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_501'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_503'
        '504':
          description: Gateway has timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_504'
      deprecated: false
      security:
      - Bearer: []
      - BasicAuth: []
      x-hideTryItPanel: true
    delete:
      tags:
      - Sub-TPPs
      summary: Delete a sub-TPP
      description: The `DELETE /member/sub-tpps/{subTppId}` endpoint deletes an existing sub-TPP for a reseller.
      operationId: GatewayService.DeleteSubTpp
      parameters:
      - name: subTppId
        in: path
        description: This id specifies the sub-TPP to delete.
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: 8d54f066-c14a-47c0-b58b-fec6b0ed6b4c
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteSubTppResponse'
        '400':
          description: The client specified an invalid argument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: The authorization information is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Permission to access this endpoint is denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: The requested entity, such as a sub-tpp, was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_429'
        '500':
          description: An unexpected or internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        '501':
          description: The operation was not implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_501'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_503'
        '504':
          description: Gateway has timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_504'
      deprecated: false
      security:
      - Bearer: []
      - BasicAuth: []
      x-hideTryItPanel: true
  /member/sub-tpps/{subTppId}/children:
    get:
      tags:
      - Sub-TPPs
      summary: Get sub-TPP children
      description: The `GET /member/sub-tpps/{subTppId}/children` endpoint retrieves the sub-TPP children for given sub-TPP.
      operationId: GatewayService.RetrieveSubTppChildren
      parameters:
      - name: subTppId
        in: path
        description: This id specifies the sub-TPP for which the children are to be retrieved.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: 8d54f066-c14a-47c0-b58b-fec6b0ed6b4c
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveSubTppChildrenResponse'
        '400':
          description: The client specified an invalid argument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: The authorization information is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Permission to access this endpoint is denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: The requested entity, such as a sub-tpp, was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_429'
        '500':
          description: An unexpected or internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        '501':
          description: The operation was not implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_501'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_503'
        '504':
          description: Gateway has timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_504'
      deprecated: false
      security:
      - Bearer: []
      - BasicAuth: []
      x-hideTryItPanel: true
components:
  schemas:
    member.TokenLicensedNonSoleTraderPrivateMerchant:
      type: object
      required:
      - merchantJurisdiction
      - legalEntityName
      - companyRegistrationNumber
      - primaryUseCase
      - iban
      - ubos
      - directors
      - signatories
      properties:
        merchantJurisdiction:
          type: string
          description: The 'merchantJurisdiction' field specifies the jurisdiction in which the merchant operates. Previously, this field was referred to as the 'domicile country'.
          example: DE
        legalEntityName:
          type: string
          description: Full name of the merchant legal entity.
          example: Test Merchant Entity Name
        companyRegistrationNumber:
          type: string
          description: Company registration number of merchant legal entity.
          example: '123456789'
        primaryUseCase:
          type: string
          description: 'Merchant primary use case. Possible values include: AIS: Accounting package integration, AIS: Cash flow management, AIS: Credit risk analysis, AIS: Customer onboarding / verification, AIS: Personal finance management, PIS: eCommerce merchant payment, PIS: Funding an account, PIS: In store merchant payment, PIS: Paying a bill, PIS: Paying off debt'
          example: 'AIS: Accounting package integration'
        iban:
          type: string
          description: The IBAN of the bank where the payments are settled. The IBAN used will depend on the specific setup for each TPP/sub-TPP. </br>For example, this will be:<ul><li>The sub-TPP's IBAN for cases where settlement is to the merchant.</li><li>The TPP's IBAN when the sub-TPP settles directly with the TPP.</li><li>A proxy for jurisdictions involved in the transaction.</li></ul>Token.io checks the jurisdiction of the bank account and, where possible, confirms that the name on the account is valid; this name can be either the client's or the merchant's. </br>You must use a valid IBAN if you're testing in Sandbox.
          example: DE0000000000000000000
        bic:
          type: string
          description: BIC of merchant’s recipient bank account. You must use a valid IBAN if you're testing in sandbox.
          example: BOFIIE2D
        merchantType:
          type: string
          description: Type of merchant being onboarded. Determines compliance requirements during onboarding. <ul><li><b>TOKEN_LICENSED_SOLE_TRADER</b>Individually operated business.</li><li><b>LICENSED_TPP_SOLE_TRADER</b>Individually operated business Licensed by TPP.</li><li><b>LICENSED_TPP_NON_SOLE_TRADER</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li> <b>TOKEN_LICENSED_NON_SOLE_TRADER_PUBLIC</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li><b>TOKEN_LICENSED_NON_SOLE_TRADER_PRIVATE</b>Privately held company. UBOs, Directors, and Signatories will be required depending on sub-TPP type.</li></ul>
          example: TOKEN_LICENSED_NON_SOLE_TRADER_PRIVATE
          enum:
          - TOKEN_LICENSED_NON_SOLE_TRADER_PRIVATE
        mccSubType:
          type: string
          description: Merchant Category Code Subtype, for certain industry this field needs to be provided.
        ubos:
          type: array
          items:
            $ref: '#/components/schemas/member.PersonDetail'
        directors:
          type: array
          items:
            $ref: '#/components/schemas/member.PersonDetail'
        signatories:
          type: array
          items:
            $ref: '#/components/schemas/member.PersonDetail'
      description: Contains information about the merchant member.
    member.SubTpp:
      type: object
      properties:
        childSubTppIds:
          type: array
          description: The list of sub-TPP ids returned.
          items:
            type: string
            example: '["8d54f066-c14a-47c0-b58b-fec6b0ed6b4c","3d46h823-g02s-20m5-k19c-kes4ekkc2p5x","0c55fwgs-s1e2-dloa-0j36-sat2b9kw4s8g"]'
        createdAt:
          type: string
          description: Represents the creation date for the sub-TPP, in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format.
          format: string
          example: '2022-09-22T17:00:00.000Z'
        domain:
          type: string
          description: The fully qualified domain name of the sub-TPP, also referred to as an absolute domain name. This specifies an exact location in the tree hierarchy of the Domain Name System (DNS). It must include all domain levels, including the top-level domain and the root zone.
          example: somehost.example.com
        id:
          type: string
          description: The Token.io-generated `subTPPId` used by the reseller as `actingAs.refId` in token requests to identify the sub-TPP.
          example: 8d54f066-c14a-47c0-b58b-fec6b0ed6b4c
        logo:
          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
          type: string
          description: Specifies the image file containing the sub-TPP's logo as a byte array. Click <a href="https://gist.github.com/taterbase/2784890" target="_blank">here</a> for the JavaScript `fromCharCode` function needed to convert the byte array to a UTF-8 string.
          format: byte
        memberId:
          type: string
          description: The Token.io-generated member id for the reseller.
          example: m:213xyzabc3453434
        merchant:
          $ref: '#/components/schemas/member.Merchant'
        name:
          type: string
          description: The recognised business name or DBA of the sub-TPP.
          example: Sub-TPP Business Ltd
        parentSubTppId:
          $ref: '#/components/schemas/parentSubTppId'
        restrictedCountries:
          type: array
          description: A list of two-letter country codes in upper case (ISO 3166-1 alpha-2), in which this bank operates.
          items:
            type: string
          example:
          - DE
          - FR
          - GB
        status:
          $ref: '#/components/schemas/member.SubTpp.Status'
        statusReasonInformation:
          type: string
          description: A human-readable description of the reason for the reported status, which may include a message from the bank. This value should not exceed 256 characters in length.
          example: This sub-TPP has been activated.
        mccCode:
          type: string
          description: Merchant Category Code is a four-digit number that classifies the type of goods or service a business offers.
        updatedAt:
          type: string
          description: The string representing the last update for the sub-TPP details, in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format.
          format: string
          example: '2022-09-22T17:00:00.000Z'
      description: Contains the sub-TPP details.
    NotImplementedError:
      required:
      - paymentId
      type: object
      properties:
        errorCode:
          example: UNIMPLEMENTED
        paymentId:
          type: string
          description: The operation was not implemented,supported or enabled by the bank.
          example: Not implemented.
      description: The operation was not implemented, supported or enabled by the bank.
      allOf:
      - $ref: '#/components/schemas/ErrorWithCode'
    member.SubTpp.Status:
      type: string
      example: ACTIVATED
      default: INVALID_STATUS
      enum:
      - INVALID_STATUS
      - ACTIVATED
      - REJECTED
      - AWAITING_APPROVAL
      - DEACTIVATED
      description: The status of the sub-TPP.
    member.LicensedTppSoleTraderMerchantGB:
      type: object
      required:
      - merchantJurisdiction
      - legalEntityName
      - companyRegistrationNumber
      - primaryUseCase
      - accountNumber
      - sortCode
      properties:
        merchantJurisdiction:
          type: string
          description: The 'merchantJurisdiction' field specifies the jurisdiction in which the merchant operates. Previously, this field was referred to as the 'domicile country'.
          example: GB
        legalEntityName:
          type: string
          description: Full name of the merchant legal entity.
          example: Test Merchant Entity Name
        companyRegistrationNumber:
          type: string
          description: Company registration number of merchant legal entity.
          example: '123456789'
        primaryUseCase:
          type: string
          description: 'Merchant primary use case. Possible values include: AIS: Accounting package integration, AIS: Cash flow management, AIS: Credit risk analysis, AIS: Customer onboarding / verification, AIS: Personal finance management, PIS: eCommerce merchant payment, PIS: Funding an account, PIS: In store merchant payment, PIS: Paying a bill, PIS: Paying off debt'
          example: 'AIS: Accounting package integration'
        accountNumber:
          type: string
          description: The unique identifier for the bank account in the UK or Ireland.
          example: '12345678'
        sortCode:
          type: string
          description: The number assigned to a branch of a bank, typically containing six digits and most commonly used in the UK and Ireland.
          example: '123456'
        merchantType:
          type: string
          description: Type of merchant being onboarded. Determines compliance requirements during onboarding. <ul><li><b>TOKEN_LICENSED_SOLE_TRADER</b>Individually operated business.</li><li><b>LICENSED_TPP_SOLE_TRADER</b>Individually operated business Licensed by TPP.</li><li><b>LICENSED_TPP_NON_SOLE_TRADER</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li> <b>TOKEN_LICENSED_NON_SOLE_TRADER_PUBLIC</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li><b>TOKEN_LICENSED_NON_SOLE_TRADER_PRIVATE</b>Privately held company. UBOs, Directors, and Signatories will be required depending on sub-TPP type.</li></ul>
          example: LICENSED_TPP_SOLE_TRADER
          enum:
          - LICENSED_TPP_SOLE_TRADER
        mccSubType:
          type: string
          description: Merchant Category Code Subtype, for certain industry this field needs to be provided.
      description: Contains information about the merchant member.
    inline_response_400:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
    member.LicensedTppNonSoleTraderMerchant:
      type: object
      required:
      - merchantJurisdiction
      - legalEntityName
      - companyRegistrationNumber
      - primaryUseCase
      - iban
      properties:
        merchantJurisdiction:
          type: string
          description: The 'merchantJurisdiction' field specifies the jurisdiction in which the merchant operates. Previously, this field was referred to as the 'domicile country'.
          example: DE
        legalEntityName:
          type: string
          description: Full name of the merchant legal entity.
          example: Test Merchant Entity Name
        companyRegistrationNumber:
          type: string
          description: Company registration number of merchant legal entity.
          example: '123456789'
        primaryUseCase:
          type: string
          description: 'Merchant primary use case. Possible values include: AIS: Accounting package integration, AIS: Cash flow management, AIS: Credit risk analysis, AIS: Customer onboarding / verification, AIS: Personal finance management, PIS: eCommerce merchant payment, PIS: Funding an account, PIS: In store merchant payment, PIS: Paying a bill, PIS: Paying off debt'
          example: 'AIS: Accounting package integration'
        iban:
          type: string
          description: The IBAN of the bank where the payments are settled. The IBAN used will depend on the specific setup for each TPP/sub-TPP. </br>For example, this will be:<ul><li>The sub-TPP's IBAN for cases where settlement is to the merchant.</li><li>The TPP's IBAN when the sub-TPP settles directly with the TPP.</li><li>A proxy for jurisdictions involved in the transaction.</li></ul>Token.io checks the jurisdiction of the bank account and, where possible, confirms that the name on the account is valid; this name can be either the client's or the merchant's. </br>You must use a valid IBAN if you're testing in Sandbox.
          example: DE0000000000000000000
        bic:
          type: string
          description: BIC of merchant’s recipient bank account. You must use a valid IBAN if you're testing in sandbox.
          example: BOFIIE2D
        merchantType:
          type: string
          description: Type of merchant being onboarded. Determines compliance requirements during onboarding. <ul><li><b>TOKEN_LICENSED_SOLE_TRADER</b>Individually operated business.</li><li><b>LICENSED_TPP_SOLE_TRADER</b>Individually operated business Licensed by TPP.</li><li><b>LICENSED_TPP_NON_SOLE_TRADER</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li> <b>TOKEN_LICENSED_NON_SOLE_TRADER_PUBLIC</b>Publicly listed company. May require Signatories depending on sub-TPP type.</li><li><b>TOKEN_LICENSED_NON_SOLE_TRADER_PRIVATE</b>Privately held company. UBOs, Directors, and Signatories will be required depending on sub-TPP type.</li></ul>
          example: LICENSED_TPP_NON_SOLE_TRADER
          enum:
          - LICENSED_TPP_NON_SOLE_TRADER
        mccSubType:
          type: string
          description: Merchant Category Code Subtype, for certain industry this field needs to be provided.
      description: Contains information about the merchant member.
    TokenLicensedNonSoleTraderPublicGB:
      title: Token Licensed Tpp Non Sole Trader Public GB
      type: object
      required:
      - name
      - domain
      - merchant
      properties:
        domain:
          type: string
          description: The fully qualified domain name of the sub-TPP, also referred to as the absolute domain name. This specifies an exact location in the tree hierarchy of the Domain Name System (DNS). It must include all domain levels, including the top-level domain and the root zone.
          example: somehost.example.com
        logo:
          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
          type: string
          description: This field specifies the image file containing the sub-TPP's logo as a byte array (click <a href="https://thewebdev.info/2021/08/01/how-to-convert-a-file-input-value-to-a-byte-array-with-javascript" target="_blank">here</a> for the JavaScript FileReader instance needed to convert the selected file into a byte array).
          format: byte
          example: b0Y5cVl6aDc3RkE5blZyQ24yamlh
        merchant:
          $ref: '#/components/schemas/member.TokenLicensedNonSoleTraderPublicMerchantGB'
        name:
          type: string
          description: The recognised business name or DBA of the sub-TPP.
          example: Sub-TPP Business Ltd
        parentSubTppId:
          $ref: '#/components/schemas/parentSubTppId'
        mccCode:
          type: string
          description: Merchant Category Code is a four-digit number that classifies the type of goods or services a business offers.
        useNewFlow:
          type: boolean
          description: When useNewFlow is set to true, the request is handled by the new merchant onboarding flow, rather than by the old flow.
    member.Merchant:
      type: object
      required:
      - merchantJurisdiction
      - legalEntityName
      - companyRegistrationNumber
      - industry
      - primaryUseCase
      - iban
      properties:
        merchantJurisdiction:
          type: string
          description: The 'merchantJurisdiction' field specifies the jurisdiction in which the merchant operates. Previously, this field was referred to as the 'domicile country'.
          example: DE
        legalEntityName:
          type: string
          description: Full name of the merchant legal entity.
          example: Test Merchant Entity Name
        companyRegistrationNumber:
          type: string
          description: Company registration number of mer

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/token-io/refs/heads/main/openapi/token-io-sub-tpps-api-openapi.yml