Skip to main content
A repair (also called reconnect) fixes a broken connection by sending the customer back into the widget straight to the institution login page, skipping the institution picker. Repair is the only way to bring a RECONNECT_REQUIRED connection back to ACTIVE. This page is for developers wiring up the reconnect prompt in their UI.

Before you begin

  • You have received a BANK_LINKING_CONNECTION_STATUS_CHANGE webhook moving the connection to RECONNECT_REQUIRED (or a DEGRADED reason that requires customer action, or an ACTIVE connection with statusReason ACCESS_EXPIRING_SOON / NEW_ACCOUNTS_AVAILABLE)
  • You know the connectionId of the broken connection
  • You have UI ready to render the widget — repair generates a connect token just like Step 1

When connections need repair

Connections that were initially successful (ACTIVE) can later require reconnection and move to RECONNECT_REQUIRED. A connection in RECONNECT_REQUIRED will no longer update; the latest data available (still queryable via Meld’s endpoints) is from before the connection degraded. A connection can also remain ACTIVE with a statusReason of NEW_ACCOUNTS_AVAILABLE — meaning the customer has the option to add additional accounts via the repair flow. Common causes of a broken connection:
  • The customer changed their bank password after the initial connection.
  • The institution expired the consent after a set period and requires the customer to re-authenticate.
  • Multi-factor authentication settings changed at the institution.
  • Provider-level token or session expired.

How to repair a connection

Call the repair endpoint with the connectionId. The response includes a fresh connectToken and widgetUrl. Launch the widget exactly the same way you did in Step 2: Launch the Widget — but the customer skips the institution picker and goes straight to the login screen. Once the customer logs in successfully, you will receive a BANK_LINKING_CONNECTION_STATUS_CHANGE webhook indicating the connection is ACTIVE again, and you can retrieve up-to-date data.
For the full request and response schema, refer to the Bank Linking API reference.

Sample response

{
    "id": "WQ5RitxnrnggqcT8noLoZN",
    "connectToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZWRpcmVjdCI6dHJ1ZSwicmVnaW9ucyI6WyJVUyJdLCJpc3MiOiJtZWxkLmlvIiwiY29ubmVjdGlvbiI6IldRNVJpdHhucm5nZ3FjVDhub0xvWk4iLCJleHAiOjE2ODcyMzM4NTgsImlhdCI6MTY4NzIxOTQ1OCwiYWNjb3VudCI6Ilc5a2JrUm1lOVZUMml6NnFBU2ZBZjIiLCJjdXN0b21lciI6IldRNVJpd2lBTkM5ZnhTdmhZRnpXOXIiLCJwcm9kdWN0cyI6WyJCQUxBTkNFUyIsIklERU5USUZJRVJTIiwiT1dORVJTIiwiVFJBTlNBQ1RJT05TIl0sInJvdXRpbmdQcm9maWxlIjoiV0d2Rlh0WGJEb0NlV3N4VXR1aXhQeSJ9.d_D-VTwLx51bT2DwtNwxpH38oaaKdnrLQD0SM-pXFpU",
    "institutionId": "Ntj3AwgdridJc2rtfeheku",
    "widgetUrl": "https://institution-connect-sb.meld.io?connectToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZWRpcmVjdCI6dHJ1ZSwicmVnaW9ucyI6WyJVUyJdLCJpc3MiOiJtZWxkLmlvIiwiY29ubmVjdGlvbiI6IldRNVJpdHhucm5nZ3FjVDhub0xvWk4iLCJleHAiOjE2ODcyMzM4NTgsImlhdCI6MTY4NzIxOTQ1OCwiYWNjb3VudCI6Ilc5a2JrUm1lOVZUMml6NnFBU2ZBZjIiLCJjdXN0b21lciI6IldRNVJpd2lBTkM5ZnhTdmhZRnpXOXIiLCJwcm9kdWN0cyI6WyJCQUxBTkNFUyIsIklERU5USUZJRVJTIiwiT1dORVJTIiwiVFJBTlNBQ1RJT05TIl0sInJvdXRpbmdQcm9maWxlIjoiV0d2Rlh0WGJEb0NlV3N4VXR1aXhQeSJ9.d_D-VTwLx51bT2DwtNwxpH38oaaKdnrLQD0SM-pXFpU"
}
The connect token returned by repair expires after 3 hours, identical to a fresh /connect/start token. If the customer doesn’t complete the repair in that window, request a new one.

Common errors

SymptomLikely causeDeveloper action
404 Not Found on the repair endpointInvalid connectionIdVerify the id and the environment.
409 Conflict — connection cannot be repairedConnection is in EXPIRED, DELETED, or IN_PROGRESSThese statuses are terminal or active. Start a new connection instead.
Customer completes repair but status stays RECONNECT_REQUIREDProvider-side failure during re-authenticationInspect the next BANK_LINKING_CONNECTION_STATUS_CHANGE webhook for the new reason; consider routing retry.