Skip to main content

Update Existing Connections


AnchorOverview

Due to changes in auth credentials, or changes from the provider, some connections will be left in a broken state where the user has to repair the connection.

The steps for repairing/updating a connection are very similar to the steps for creating a new connection. The only difference is that the connector initialize mutation will receive specific inputs that will configure the connection widget to open in update mode. Here are the steps for updating a connection:

  1. Call the connector[IntegrationName]Initialize mutation to initialize a connection widget for the integration (use arguments for update mode).
  2. Open the connection with the data provided by the connector[IntegrationName]Initialize mutation.
  3. Check connector status from record.connectorStatus from the connector[IntegrationName]Initialize mutation.
    • If the status is CONTINUE, then the connection has been successfully repaired. No user action is required.
    • If the status is ACTION_REQUIRED, open the connection widget and the user will reconnect their account to update the connection.

Each integration typically requires a specific set of fields to update a connection. See the sections for corresponding integration’s documentation:

Note: More connection integrations will become available in the future. If you are interested in integration that’s not generally available, please contact us here.


AnchorPlaid

For a complete guide to reconnecting broken connections on the client side with React and Apollo GraphQL, check our guide on How to Reconnect Broken Plaid Connections.

The connectorPlaidInitialize mutation is used to create a Link Token to configure an instance of Link. The linkToken generated by this mutation will be used for Plaid Link initialization. Check out our guides on configuring Plaid Link with React or see Plaid’s Docs for more information.

mutation ConnectorPlaidInitialize($input: ConnectorPlaidInitializeInput) {
connectorPlaidInitialize(input: $input) {
success
record {
connectorStatus
connectorToken
expiration
linkToken
requestId
}
errors {
code
message
}
}
}

AnchorConnectorPlaidInitializeInput

Autogenerated input type of ConnectorPlaidInitialize

FieldTypeDescription
accountFiltersPlaidLinkTokenAccountFiltersBy default, Link will provide limited account filtering: it will only display Institutions that are compatible with all products supplied in the products parameter of /link/token/create, and, if auth is specified in the products array, will also filter out accounts other than checking and savings accounts on the Account Select pane. You can further limit the accounts shown in Link by using account_filters to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value “all”. If the account_filters filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the Account schema.
androidPackageNameStringThe name of your app’s Android package. Required if using the link_token to initialize Link on Android. When creating a link_token for initializing Link on other platforms, this field must be left blank. Any package name specified here must also be added to the Allowed Android package names setting on the developer dashboard.
authPlaidLinkTokenCreateRequestAuthSpecifies options for initializing Link for use with the Auth product. This field is currently only required if using the Flexible Auth product (currently in closed beta).
clientMutationIdStringA unique identifier for the client performing the mutation.
clientNameStringThe name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer than 30 characters is provided, Link will display “This Application” instead. Defaults to your Quiltt deployment’s branding.
connectionIdIDUsed when launching Link in update mode, when completing the Same-day (manual) Micro-deposit flow, or (optionally) when initializing Link as part of the Payment Initiation (UK and Europe) flow.
countryCodes[String!]An array of Plaid-supported country codes using ISO-3166-1 alpha-2 country code standard
euConfigPlaidLinkTokenEUConfigConfiguration parameters for EU flows
featuresConnectionFeature!
languageStringThe language that Link should be displayed in. Supported languages are: English (“en”) French (“fr”) Spanish (“es”) Dutch (“nl”) German(“de”). When using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.
linkCustomizationNameStringThe name of the Link customization from the Plaid Dashboard to be applied to Link
products[String!]List of products to use with Link
updatePlaidLinkTokenCreateRequestUpdateSpecifies options for initializing Link for update mode.

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.

AnchorConnectorPlaidInitializePayload

Autogenerated return type of ConnectorPlaidInitialize

FieldTypeDescription
clientMutationIdStringA unique identifier for the client performing the mutation.
errors[PlaidAPIError!]Plaid API Error
recordPlaidConnector
successBoolean!Status of the mutation

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.

AnchorUpdate Connection

After your user successfully completes the Plaid Link session, call the connectorPlaidClose mutation from Plaid Link’s onSuccess callback, passing in the Quiltt connectorToken, along with Plaid Link’s metadata and publicToken.

mutation ConnectorPlaidClose($input: ConnectorPlaidCloseInput) {
connectorPlaidClose(input: $input) {
success
record {
id
accounts {
id
name
}
institution {
name
logo
}
}
errors {
code
message
}
}
}

AnchorConnectorPlaidCloseInput

Autogenerated input type of connectorPlaidClose

FieldTypeDescription
clientMutationIdStringA unique identifier for the client performing the mutation.
connectorTokenString!The connector_token string from Connector Initialization
metadataJSON!The metadata object from Plaid Link’s onSuccess callback
publicTokenString!The public_token string from Plaid Link’s onSuccess callback

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.

AnchorConnectorPlaidClosePayload

Autogenerated return type of connectorPlaidClose

FieldTypeDescription
clientMutationIdStringA unique identifier for the client performing the mutation.
errors[PlaidAPIError!]Plaid API Error
recordConnectionTypeConnection
successBoolean!Status of the mutation

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.


AnchorUpdating Connection Metadata

Quiltt adds a metadata field to the Connection type. This field is a JSON object that can be used to store any data you want. A good use of the metadata field is to store additional data about the connection that wasn’t provided by the integration provider.

mutation ConnectionUpdate($input: ConnectionUpdateInput!) {
connectionUpdate(input: $input) {
errors {
message
}
record {
id
metadata
}
success
}
}

AnchorConnectionUpdateInput

Autogenerated input type of ConnectionUpdate

FieldTypeDescription
clientMutationIdStringA unique identifier for the client performing the mutation.
idID!ID of the connection
metadataJSONCustomizable metadata

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.

AnchorConnectionUpdatePayload

Autogenerated return type of ConnectionUpdate

FieldTypeDescription
clientMutationIdStringA unique identifier for the client performing the mutation.
errors[Error!]List of errors from mutation
recordConnectionTypeUpdated Connection Information
successBoolean!Status of the mutation

View static documentation on the GraphQL Explorer on your Dashboard for a complete list of typings.