Before you begin
- You have a
connectionIdfor a connection that is not inRECONNECT_REQUIRED,EXPIRED,DELETED, orIN_PROGRESS(those statuses cannot be refreshed — see Connection Errors and Reasons) - You understand that forced refreshes can incur additional charges and may be rate-limited by the provider
- You have webhooks configured so you can observe the resulting aggregation events
Automatic refreshes
Service providers typically refresh connection data (balances and transactions) once or a few times a day, and Meld pulls the latest data at that time. When Meld detects a change, you receive webhooks so you can fetch the latest data. You do not need to schedule refreshes yourself for routine freshness.Forced refreshes
At any time you can call the refresh endpoint to force a live aggregation of all accounts on a connection. You can scope the refresh to specific products. Both forced and automatic refreshes produce webhooks.How to refresh a connection
Call the refresh endpoint with theconnectionId and (optionally) the list of products you want to refresh.
For the full request and response schema, refer to the Bank Linking API reference.
BANK_LINKING_ACCOUNTS_UPDATED, BANK_LINKING_TRANSACTIONS_AGGREGATED — to know when fresh data is available.
Common errors
| HTTP status | Likely cause | Developer action |
|---|---|---|
404 Not Found | Invalid connectionId | Verify the id and the environment (sandbox vs production). |
409 Conflict | Connection is in a status that cannot be refreshed (e.g. RECONNECT_REQUIRED, EXPIRED) | Check the status; if RECONNECT_REQUIRED, send the customer through the repair flow instead. |
429 Too Many | Provider rate limit hit (e.g. MX 3-hour limit) | Back off and retry after the provider window. Do not loop on this error. |
5xx | Transient Meld or provider issue | Retry with exponential backoff; if persistent, inspect the next BANK_LINKING_CONNECTION_STATUS_CHANGE webhook to see if the connection moved to DEGRADED or UNDETERMINED. |