Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.methodfi.com/llms.txt

Use this file to discover all available pages before exploring further.

How Update Failures Surface

When a direct Update can’t retrieve fresh data, two things happen:
  1. The Update transitions to status: failed and its error object is populated. Today, every failed direct Update returns the same canonical error: code: 21001, type: UPDATE_FAILED, sub_type: UPDATE_TEMPORARILY_UNAVAILABLE, message “Update is temporarily unavailable for this account.”
  2. The underlying account’s liability gets a more specific data_status_error describing why the sync failed. Read this on the account object to drive your retry/fallback logic.
{
  "id": "upt_NYV5kfjskTTCJ",
  "status": "failed",
  "error": {
    "type": "UPDATE_FAILED",
    "sub_type": "UPDATE_TEMPORARILY_UNAVAILABLE",
    "code": 21001,
    "message": "Update is temporarily unavailable for this account."
  }
}

Account-Level Failure Reasons

The granular reason lives on the account’s liability data_status_error. The codes you’ll encounter:
CodeReasonWhat it meansRecommended Action
15001ClosedThe account has been closed at the institution.Update your local records. Don’t retry.
15002Paid in fullThe liability has been paid off.Update your local records. Don’t retry.
15003No longer servicedThe institution no longer services this account (e.g. transferred or sold).Update your local records. Don’t retry.
15004Unauthorized / sync failedCatch-all for transient and connection-level failures (institution timeouts, technical issues, outside-hours, internal errors, repeated failure throttling).Retry after a delay. If persistent, contact support.
15005Invalid holder detailsThe institution rejected the holder details Method has on file (e.g., DOB, postal code, KYC).Refresh the entity’s identity data and re-enroll.
15006Temporarily unavailableGeneric temporary failure.Retry after a delay.
15007Invalid account numberThe account number Method has is no longer valid at the institution.Re-discover the account via Connect.
15008DelinquentThe account is in a delinquent state at the institution.Surface this to the user. Don’t retry until resolved.
15009Unsupported merchantThe institution doesn’t support real-time data connections for this account type.Fall back to snapshot Updates.
15010Consolidated loanThe student loan has been consolidated into a different loan.Re-discover via Connect.
15011Liability disabledUpdates have been disabled for this liability.Don’t retry. Contact support if unexpected.

Retry Strategy

1. First retry: wait 5 minutes
2. Second retry: wait 30 minutes
3. Third retry: wait 2 hours
4. After 3 failures: fall back to snapshot, alert your CSM
Use idempotency keys when retrying to avoid duplicate requests.

Fallback Pattern: Direct to Snapshot

When direct Updates aren’t available or keep failing, snapshot data provides a reliable baseline:
# Try direct first
curl https://production.methodfi.com/accounts/acc_yVf3mkzbhz9tj/updates \
  -X POST \
  -H "Method-Version: 2026-03-30" \
  -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
  -H "Content-Type: application/json" \
  -d '{"type": "direct"}'

# If direct fails, fall back to snapshot
curl https://production.methodfi.com/accounts/acc_yVf3mkzbhz9tj/updates \
  -X POST \
  -H "Method-Version: 2026-03-30" \
  -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
  -H "Content-Type: application/json" \
  -d '{"type": "snapshot"}'

UX Recommendations

  • Always show the most recent known data, even if it’s stale. A balance from last week is better than a blank screen.
  • Indicate freshness. Show the data_as_of timestamp so users know how current the data is: “Balance as of March 20, 2024.”
  • Show refresh state. When an Update is in progress, show a loading indicator alongside the existing data.
  • Don’t block on failures. If a direct Update fails, display the last snapshot data and retry in the background.

Subscription Failures

When a subscription-triggered Update fails, Method retries internally on transient/infrastructure errors and continues attempting fresh syncs on the subscription’s normal cadence. After repeated failures, the account is throttled (typically a multi-day backoff) and you may see data_status_error: 15004 (sync failed) on the account. You’ll receive an update.update webhook when the failed Update lands, regardless of the underlying retry behavior. Monitor these webhooks to detect persistent issues with specific accounts or institutions and to drive your own fallback (e.g., showing snapshot data, prompting the user to reconnect for 15005/15007).

Fields by Liability Type

The data returned in an Update depends on the account type. Common patterns:
Liability TypeKey Fields
Credit Cardbalance, available_credit, credit_limit, interest_rate (min/max/type), payment info, opened_at
Auto Loanbalance, interest_rate, original_loan_amount, term_length, expected_payoff_date, payment info
Student Loanbalance, original_loan_amount, term_length, payment info
Mortgagebalance, interest_rate, original_loan_amount, term_length, expected_payoff_date, payment info
Personal Loanbalance, available_credit, interest_rate, original_loan_amount, term_length, payment info
All types share: balance, last_payment_amount, last_payment_date, next_payment_due_date, next_payment_minimum_amount, opened_at, closed_at. For the full Updates API, see the Updates reference.