Q2

Q2 Customer Relationship API

Endpoints for the customerRelationship object

Operations 5

POST /customerRelationship/archive Archive customer relationship #
POST /customerRelationship/create Create customer relationship #
GET /customerRelationship/list/{customerId} List customer relationships #
POST /customerRelationship/update Update customer relationship #
POST /customerRelationship/updatePrimaryContact Update primary contact #

Documentation

Specifications

Schemas & Data

Other Resources

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/q2:q2-customer-relationship-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

q2-customer-relationship-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Helix Customer Relationship API
  version: 3.0.0
  description: Helix Public API (no customer KYC/IDV). **This spec covers all of Helix 3.x and is subject to change at any time.**
servers:
- url: https://sandbox-api.helix.q2.com
  description: Sandbox server
- url: https://api.helix.q2.com
  description: Production server
security:
- basicAuth: []
tags:
- name: Customer Relationship
  description: Endpoints for the customerRelationship object
paths:
  /customerRelationship/archive:
    post:
      tags:
      - Customer Relationship
      summary: Archive customer relationship
      description: Archive a customer relationship by the Helix-assigned `customerRelationshipId`.
      externalDocs:
        url: https://docs.helix.q2.com/reference/customerrelationshiparchive
      operationId: customerRelationshipArchive
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - primaryCustomerId
              - relatedCustomerId
              properties:
                primaryCustomerId:
                  $ref: '#/components/schemas/HelixId'
                relatedCustomerId:
                  $ref: '#/components/schemas/HelixId'
      responses:
        '200':
          description: A confirmation the relationship has been archived
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRelationshipArchive200Response'
        '400':
          $ref: '#/paths/~1card~1lock/post/responses/400'
        '401':
          $ref: '#/paths/~1card~1lock/post/responses/401'
        '404':
          $ref: '#/paths/~1card~1lock/post/responses/404'
        '405':
          $ref: '#/paths/~1card~1lock/post/responses/405'
        '429':
          $ref: '#/paths/~1card~1lock/post/responses/429'
  /customerRelationship/create:
    post:
      tags:
      - Customer Relationship
      summary: Create customer relationship
      description: See customerRelationship object definition for parameter details.
      externalDocs:
        url: https://docs.helix.q2.com/reference/customerrelationshipcreate
      operationId: customerRelationshipCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - primaryCustomerId
              - relatedCustomerId
              - relationshipType
              - canOpenAccounts
              - externalAccountAccessType
              - isPrimaryContact
              - isBeneficialOwner
              - isControlPerson
              properties:
                primaryCustomerId:
                  $ref: '#/components/schemas/HelixId'
                relatedCustomerId:
                  $ref: '#/components/schemas/HelixId'
                relationshipType:
                  type: string
                  enum:
                  - Signer
                  - Owner
                  - NonTransactional
                  - BeneficialOwner
                  - Trustee
                  - SuccessorTrustee
                  - Guardian
                  - Conservator
                  - Executor
                  - Agent
                  - PowerOfAttorney
                  - Custodian
                  - Administrator
                  - Fiduciary
                canOpenAccounts:
                  type: boolean
                externalAccountAccessType:
                  type: string
                  enum:
                  - FULL
                  - RDLY
                  - ACH
                  - NONE
                isPrimaryContact:
                  type: boolean
                isControlPerson:
                  type: boolean
                isBeneficialOwner:
                  type: boolean
                beneficialOwnerPercentage:
                  type: number
                  format: decimal
                title:
                  type: string
                  maxLength: 100
                requestingCustomerId:
                  $ref: '#/components/schemas/HelixId'
      responses:
        '200':
          description: An <a href="https://docs.helix.q2.com/reference/response-format" target="_blank">envelope</a> whose data node is a <a href="https://docs.helix.q2.com/docs/customer-relationship" target="_blank">customerRelationship</a> object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRelationshipObject200Response'
        '400':
          $ref: '#/paths/~1card~1lock/post/responses/400'
        '401':
          $ref: '#/paths/~1card~1lock/post/responses/401'
        '404':
          $ref: '#/paths/~1card~1lock/post/responses/404'
        '405':
          $ref: '#/paths/~1card~1lock/post/responses/405'
        '429':
          $ref: '#/paths/~1card~1lock/post/responses/429'
  /customerRelationship/list/{customerId}:
    get:
      tags:
      - Customer Relationship
      summary: List customer relationships
      description: Retrieve all relationships for the given `customerId`.
      externalDocs:
        url: https://docs.helix.q2.com/reference/customerrelationship/list/{customerId}
      operationId: customerRelationshipList
      parameters:
      - $ref: '#/components/parameters/CustomerIdPath'
      responses:
        '200':
          description: An array of <a href="https://docs.helix.q2.com/docs/customer-relationship" target="_blank">customerRelationship</a> objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRelationshipArray200Response'
        '400':
          $ref: '#/paths/~1card~1lock/post/responses/400'
        '401':
          $ref: '#/paths/~1card~1lock/post/responses/401'
        '404':
          $ref: '#/paths/~1card~1lock/post/responses/404'
        '405':
          $ref: '#/paths/~1card~1lock/post/responses/405'
        '429':
          $ref: '#/paths/~1card~1lock/post/responses/429'
  /customerRelationship/update:
    post:
      tags:
      - Customer Relationship
      summary: Update customer relationship
      description: Update a customer relationship by the Helix-assigned `customerRelationshipId`.
      externalDocs:
        url: https://docs.helix.q2.com/reference/customerrelationshipupdate
      operationId: customerRelationshipUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - primaryCustomerId
              - relatedCustomerId
              properties:
                primaryCustomerId:
                  $ref: '#/components/schemas/HelixId'
                relatedCustomerId:
                  $ref: '#/components/schemas/HelixId'
                relationshipType:
                  $ref: '#/components/schemas/RelationshipType'
                canOpenAccounts:
                  type: boolean
                externalAccountAccessType:
                  $ref: '#/components/schemas/ExternalAccountAccessType'
                isPrimaryContact:
                  type: boolean
                isControlPerson:
                  type: boolean
                isBeneficialOwner:
                  type: boolean
                beneficialOwnerPercentage:
                  type: number
                  format: decimal
                title:
                  type: string
                  maxLength: 100
                requestingCustomerId:
                  $ref: '#/components/schemas/HelixId'
      responses:
        '200':
          description: An <a href="https://docs.helix.q2.com/reference/response-format" target="_blank">envelope</a> whose data node is a <a href="https://docs.helix.q2.com/docs/customer-relationship" target="_blank">customerRelationship</a> object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRelationshipObject200Response'
        '400':
          $ref: '#/paths/~1card~1lock/post/responses/400'
        '401':
          $ref: '#/paths/~1card~1lock/post/responses/401'
        '404':
          $ref: '#/paths/~1card~1lock/post/responses/404'
        '405':
          $ref: '#/paths/~1card~1lock/post/responses/405'
        '429':
          $ref: '#/paths/~1card~1lock/post/responses/429'
  /customerRelationship/updatePrimaryContact:
    post:
      tags:
      - Customer Relationship
      summary: Update primary contact
      description: Update the primary contact for the given `customerId`.
      externalDocs:
        url: https://docs.helix.q2.com/reference/customerrelationshipupdateprimarycontact
      operationId: customerRelationshipUpdatePrimaryContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - requestingCustomerId
              - primaryCustomerId
              - primaryContactCustomerId
              properties:
                requestingCustomerId:
                  allOf:
                  - description: The helix-assigned unique ID for the customer making the request
                  - $ref: '#/components/schemas/HelixId'
                primaryCustomerId:
                  allOf:
                  - description: The helix-assigned unique ID for the customer whose primary contact is being updated
                  - $ref: '#/components/schemas/HelixId'
                primaryContactCustomerId:
                  allOf:
                  - description: The helix-assigned unique ID for the customer who is to be the new primary contact for `primaryCustomerId`
                  - $ref: '#/components/schemas/HelixId'
      responses:
        '200':
          description: An <a href="https://docs.helix.q2.com/reference/response-format" target="_blank">envelope</a> whose data node is a <a href="https://docs.helix.q2.com/docs/customer-relationship" target="_blank">customerRelationship</a> object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRelationshipObject200Response'
        '400':
          $ref: '#/paths/~1card~1lock/post/responses/400'
        '401':
          $ref: '#/paths/~1card~1lock/post/responses/401'
        '404':
          $ref: '#/paths/~1card~1lock/post/responses/404'
        '405':
          $ref: '#/paths/~1card~1lock/post/responses/405'
        '429':
          $ref: '#/paths/~1card~1lock/post/responses/429'
components:
  schemas:
    RelationshipType:
      type: string
      enum:
      - Signer
      - Owner
      - NonTransactional
      - BeneficialOwner
      - Trustee
      - SuccessorTrustee
      - Guardian
      - Conservator
      - Executor
      - Agent
      - PowerOfAttorney
      - Custodian
      - Administrator
      - Fiduciary
    CardArray200Response:
      allOf:
      - type: object
        properties:
          errors:
            type: array
            items: {}
            example: []
          requestId:
            type: string
            example: 1249a3bf-aca1-40dd-9fba-2a3193550c39
          status:
            type: integer
            enum:
            - 200
          throttle:
            type: object
            properties:
              periodEndsAt:
                $ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
              periodLengthInSeconds:
                $ref: '#/components/schemas/HelixId'
              periodRequestLimit:
                $ref: '#/components/schemas/HelixId'
              requestsRemainingInPeriod:
                $ref: '#/components/schemas/HelixId'
              warningThreshold:
                type: number
                format: decimal
                example: 0.2
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/CardObject200Response/allOf/1/properties/data'
    ExternalAccountAccessType:
      type: string
      enum:
      - FULL
      - RDLY
      - ACH
      - NONE
    CustomerRelationshipObject200Response:
      allOf:
      - $ref: '#/components/schemas/CardArray200Response/allOf/0'
      - type: object
        properties:
          data:
            type: object
            properties:
              primaryCustomerId:
                $ref: '#/components/schemas/HelixId'
              relatedCustomerId:
                $ref: '#/components/schemas/HelixId'
              relationshipType:
                $ref: '#/components/schemas/RelationshipType'
              canOpenAccounts:
                type: boolean
              isPrimaryContact:
                type: boolean
              isControlPerson:
                type: boolean
              isBeneficialOwner:
                type: boolean
              beneficialOwnerPercentage:
                type: number
                format: decimal
              title:
                type: string
                maxLength: 100
              externalAccountAccessType:
                $ref: '#/components/schemas/ExternalAccountAccessType'
    CustomerSetLastContact200Response:
      allOf:
      - $ref: '#/components/schemas/CardArray200Response/allOf/0'
      - type: object
        properties:
          data:
            type: array
            items:
              type: object
              properties:
                customerId:
                  $ref: '#/components/schemas/HelixId'
                dormancyStatus:
                  type: string
                  enum:
                  - Active
                  - Inactive
                  - Dormant
                lastContactDate:
                  type: string
                  format: date-time
                  example: '2021-01-07T19:00:59.761-06:00'
                lastContactType:
                  $ref: '#/components/schemas/LastContactType'
    CustomerRelationshipArray200Response:
      allOf:
      - $ref: '#/components/schemas/CardArray200Response/allOf/0'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/CustomerRelationshipObject200Response/allOf/1/properties/data'
    CustomerRelationshipArchive200Response:
      allOf:
      - $ref: '#/components/schemas/CardArray200Response/allOf/0'
      - type: object
        properties:
          data:
            type: object
            properties:
              externalAccountAccessType:
                type: string
                enum:
                - NONE
              primaryCustomerId:
                $ref: '#/components/schemas/HelixId'
              relatedCustomerId:
                $ref: '#/components/schemas/HelixId'
    HelixId:
      type: integer
      format: int32
      minimum: 1
  parameters:
    CustomerIdPath:
      name: customerId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/HelixId'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
x-samples-languages:
- curl
- node
- python
- csharp
- ruby
- go
- java
- kotlin
- php
x-provenance:
  method: searched
  source: https://docs.helix.q2.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.helix.q2.com/reference/accountaddentitlement.md
  - https://docs.helix.q2.com/reference/accountbeneficiaryadd.md
  - https://docs.helix.q2.com/reference/accountbeneficiaryedit.md
  - https://docs.helix.q2.com/reference/accountbeneficiaryget.md
  - https://docs.helix.q2.com/reference/accountbeneficiarylist.md
  - https://docs.helix.q2.com/reference/accountbeneficiaryremove.md
  - https://docs.helix.q2.com/reference/accountbeneficiaryreplace.md
  - https://docs.helix.q2.com/reference/accountclose.md
  - https://docs.helix.q2.com/reference/accountcreate.md
  - https://docs.helix.q2.com/reference/accounteditentitlement.md
  - https://docs.helix.q2.com/reference/accountget.md
  - https://docs.helix.q2.com/reference/accountgetbytag.md
  - https://docs.helix.q2.com/reference/accountlimitdelete.md
  - https://docs.helix.q2.com/reference/accountlimitlist.md
  - https://docs.helix.q2.com/reference/accountlimitset.md
  - https://docs.helix.q2.com/reference/accountlist.md
  - https://docs.helix.q2.com/reference/accountlistentitlements.md
  - https://docs.helix.q2.com/reference/accountlock.md
  - https://docs.helix.q2.com/reference/accountplacehold.md
  - https://docs.helix.q2.com/reference/accountreleasehold.md
  - https://docs.helix.q2.com/reference/accountremoveentitlement.md
  - https://docs.helix.q2.com/reference/accountstoppaycreatecheckstoppay.md
  - https://docs.helix.q2.com/reference/accountstoppayexpire.md
  - https://docs.helix.q2.com/reference/accountstoppaylist.md
  - https://docs.helix.q2.com/reference/accountunlock.md
  - https://docs.helix.q2.com/reference/accountupdate.md
  - https://docs.helix.q2.com/reference/bankdocumentdownload.md
  - https://docs.helix.q2.com/reference/bankdocumentlist.md
  - https://docs.helix.q2.com/reference/cardaddaccount.md
  - https://docs.helix.q2.com/reference/cardarchive.md
  - https://docs.helix.q2.com/reference/cardcontrolarchive.md
  - https://docs.helix.q2.com/reference/cardcontrolarchivebytag.md
  - https://docs.helix.q2.com/reference/cardcontrolcreate.md
  - https://docs.helix.q2.com/reference/cardcontrolget.md
  - https://docs.helix.q2.com/reference/cardcontrolgetbytag.md
  - https://docs.helix.q2.com/reference/cardcreatedigital.md
  - https://docs.helix.q2.com/reference/cardfraudtextalertget.md
  - https://docs.helix.q2.com/reference/cardfraudtextalertoptout.md
  - https://docs.helix.q2.com/reference/cardget.md
  - https://docs.helix.q2.com/reference/cardgetbytag.md
  - https://docs.helix.q2.com/reference/cardhotlist.md
  - https://docs.helix.q2.com/reference/cardinitiate.md
  - https://docs.helix.q2.com/reference/cardlimitget.md
  - https://docs.helix.q2.com/reference/cardlimitoverride.md
  - https://docs.helix.q2.com/reference/cardlimitreset.md
  - https://docs.helix.q2.com/reference/cardlimittemporaryoverride.md
  - https://docs.helix.q2.com/reference/cardlist.md
  - https://docs.helix.q2.com/reference/cardlock.md
  - https://docs.helix.q2.com/reference/cardmockadminfalconfraud.md
  - https://docs.helix.q2.com/reference/cardmockdeclinepurchaseauthorize.md
  - https://docs.helix.q2.com/reference/cardmockdepositpurchasereturn.md
  - https://docs.helix.q2.com/reference/cardmockdepositpurchasereturnreversal.md
  - https://docs.helix.q2.com/reference/cardmockwithdrawalcardcash.md
  - https://docs.helix.q2.com/reference/cardmockwithdrawalpurchaseauthorize.md
  - https://docs.helix.q2.com/reference/cardmockwithdrawalpurchasecomplete.md
  - https://docs.helix.q2.com/reference/cardorderphysical.md
  - https://docs.helix.q2.com/reference/cardprovisionapplepay.md
  - https://docs.helix.q2.com/reference/cardprovisioncarddetail.md
  - https://docs.helix.q2.com/reference/cardprovisiongooglepay.md
  - https://docs.helix.q2.com/reference/cardreissue.md
  - https://docs.helix.q2.com/reference/cardremoveaccount.md
  - https://docs.helix.q2.com/reference/cardrenewaloverride.md
  - https://docs.helix.q2.com/reference/cardreprioritizeaccount.md
  - https://docs.helix.q2.com/reference/cardresetpin.md
  - https://docs.helix.q2.com/reference/cardriskfactorget.md
  - https://docs.helix.q2.com/reference/cardriskfactorset.md
  - https://docs.helix.q2.com/reference/cardunlock.md
  - https://docs.helix.q2.com/reference/cardupdate.md
  - https://docs.helix.q2.com/reference/cardverify.md
  - https://docs.helix.q2.com/reference/cardverifybycvv.md
  - https://docs.helix.q2.com/reference/customeranswerlist.md
  - https://docs.helix.q2.com/reference/customeranswerpost.md
  - https://docs.helix.q2.com/reference/customerarchive.md
  - https://docs.helix.q2.com/reference/customerbeneficiaryaccountassignmentlist.md
  - https://docs.helix.q2.com/reference/customerbeneficiarycreate.md
  - https://docs.helix.q2.com/reference/customerbeneficiarydeactivate.md
  - https://docs.helix.q2.com/reference/customerbeneficiaryget.md
  - https://docs.helix.q2.com/reference/customerbeneficiarylist.md
  - https://docs.helix.q2.com/reference/customerbeneficiaryupdate.md
  - https://docs.helix.q2.com/reference/customercreate.md
  - https://docs.helix.q2.com/reference/customercreatebusiness.md
  - https://docs.helix.q2.com/reference/customercreatebusinessapplication.md
  - https://docs.helix.q2.com/reference/customerdocumentget.md
  - https://docs.helix.q2.com/reference/customerdocumentlist.md
  - https://docs.helix.q2.com/reference/customerdocumentupdatestatus.md
  - https://docs.helix.q2.com/reference/customerdocumentupload.md
  - https://docs.helix.q2.com/reference/customergeneratetoken.md
  - https://docs.helix.q2.com/reference/customerget.md
  - https://docs.helix.q2.com/reference/customergetbyemail.md
  - https://docs.helix.q2.com/reference/customergetbytag.md
  - https://docs.helix.q2.com/reference/customerlist.md
  - https://docs.helix.q2.com/reference/customernote.md
  - https://docs.helix.q2.com/reference/customernoteslist.md
  - https://docs.helix.q2.com/reference/customerrelationshiparchive.md
  - https://docs.helix.q2.com/reference/customerrelationshipcreate.md
  - https://docs.helix.q2.com/reference/customerrelationshiplist.md
  - https://docs.helix.q2.com/reference/customerrelationshipupdate.md
  - https://docs.helix.q2.com/reference/customerrelationshipupdateprimarycontact.md
  - https://docs.helix.q2.com/reference/customersearch.md
  - https://docs.helix.q2.com/reference/customersecurityanswerslist.md
  - https://docs.helix.q2.com/reference/customersetlastcontact.md
  - https://docs.helix.q2.com/reference/customerupdate.md
  - https://docs.helix.q2.com/reference/customerupdateaddress-2.md
  - https://docs.helix.q2.com/reference/externalaccountarchive.md
  - https://docs.helix.q2.com/reference/externalaccountcreate.md
  - https://docs.helix.q2.com/reference/externalaccountdocumentupload.md
  - https://docs.helix.q2.com/reference/externalaccountget.md
  - https://docs.helix.q2.com/reference/externalaccountgetbytag.md
  - https://docs.helix.q2.com/reference/externalaccountinitiate.md
  - https://docs.helix.q2.com/reference/externalaccountlist.md
  - https://docs.helix.q2.com/reference/externalaccountlock.md
  - https://docs.helix.q2.com/reference/externalaccountresendverification.md
  - https://docs.helix.q2.com/reference/externalaccountunlock.md
  - https://docs.helix.q2.com/reference/externalaccountupdate.md
  - https://docs.helix.q2.com/reference/externalaccountverify.md
  - https://docs.helix.q2.com/reference/feeconfiglist.md
  - https://docs.helix.q2.com/reference/feeget.md
  - https://docs.helix.q2.com/reference/feegetbycustomertag.md
  - https://docs.helix.q2.com/reference/programget.md
  - https://docs.helix.q2.com/reference/programlistaccountholds.md
  - https://docs.helix.q2.com/reference/programlistindustryclassificationcodes.md
  - https://docs.helix.q2.com/reference/programquestionslist.md
  - https://docs.helix.q2.com/reference/statementdownload.md
  - https://docs.helix.q2.com/reference/statementget.md
  - https://docs.helix.q2.com/reference/statementlist.md
  - https://docs.helix.q2.com/reference/statementsearch.md
  - https://docs.helix.q2.com/reference/transactioncreatefee.md
  - https://docs.helix.q2.com/reference/transactionget.md
  - https://docs.helix.q2.com/reference/transactiongetbytag.md
  - https://docs.helix.q2.com/reference/transactionlist.md
  - https://docs.helix.q2.com/reference/transactionsetavailabledate.md
  - https://docs.helix.q2.com/reference/transactionsetstatus.md
  - https://docs.helix.q2.com/reference/transactionwireget.md
  - https://docs.helix.q2.com/reference/transferachoriginationcreate.md
  - https://docs.helix.q2.com/reference/transfercreate.md
  - https://docs.helix.q2.com/reference/transfervoid.md
  - https://docs.helix.q2.com/reference/transferwirecreate-2.md
  merge:
    pages: 137
    deduped: 1427
    conflicts_kept_first: 0