> ## 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.

# Getting Started

> The universal 3-step flow for PFM integrations: create an entity, verify identity, and connect liabilities.

Every PFM integration begins with the same three steps: represent your user as an Entity, verify their identity, and discover their liabilities through Connect. Once these steps are complete, every product in Method's platform becomes available.

This guide walks through the full API flow using a single user, Sarah Chen, whose data threads through the rest of the PFM guides.

<Steps>
  <Step title="Create an Entity">
    An [Entity](/guides/entities/overview) is Method's representation of your end user. You provide their PII, and Method creates a persistent identity that everything else — verification, accounts, payments — attaches to.

    ```bash theme={null}
    curl https://production.methodfi.com/entities \
      -X POST \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
      -H "Content-Type: application/json" \
      -d '{
        "type": "individual",
        "individual": {
          "first_name": "Sarah",
          "last_name": "Chen",
          "phone": "+14155550123",
          "email": "sarah.chen@email.com",
          "dob": "1992-07-15"
        },
        "address": {
          "line1": "123 Main St",
          "line2": null,
          "city": "San Francisco",
          "state": "CA",
          "zip": "94102"
        }
      }'
    ```

    The Entity is created with `status: "incomplete"` because identity verification hasn't happened yet. Products like Connect and Credit Scores remain in `restricted_products` until verification is complete.

    ```json theme={null}
    {
      "id": "ent_au22b1fbFJbp8",
      "type": "individual",
      "individual": {
        "first_name": "Sarah",
        "last_name": "Chen",
        "phone": "+14155550123",
        "dob": "1992-07-15",
        "email": "sarah.chen@email.com",
        "ssn_4": null,
        "ssn": null
      },
      "error": null,
      "address": {
        "line1": "123 Main St",
        "line2": null,
        "city": "San Francisco",
        "state": "CA",
        "zip": "94102"
      },
      "status": "incomplete",
      "verification": {
        "identity": {
          "verified": false,
          "matched": false,
          "latest_verification_session": null,
          "methods": [
            "element",
            "kba"
          ]
        },
        "phone": {
          "verified": false,
          "latest_verification_session": null,
          "methods": [
            "sms",
            "sna"
          ]
        }
      },
      "connect": null,
      "credit_score": null,
      "products": [
        "identity"
      ],
      "restricted_products": [
        "connect",
        "credit_score",
        "attribute"
      ],
      "subscriptions": [],
      "available_subscriptions": [
        "connect",
        "credit_score"
      ],
      "restricted_subscriptions": [],
      "metadata": null,
      "created_at": "2025-09-15T14:30:00.000Z",
      "updated_at": "2025-09-15T14:30:00.000Z"
    }
    ```
  </Step>

  <Step title="Verify the User">
    Before Method can discover Sarah's accounts, she must complete [identity verification](/guides/identity-verification/overview). This is a two-part process: first confirming she controls her phone number, then verifying her identity.

    ### Phone Verification (SMS)

    Start by verifying Sarah's phone number. This sends an SMS code to `+14155550123`.

    ```bash theme={null}
    curl https://production.methodfi.com/entities/ent_au22b1fbFJbp8/verification_sessions \
      -X POST \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
      -H "Content-Type: application/json" \
      -d '{
        "type": "phone",
        "method": "sms",
        "sms": {}
      }'
    ```

    ```json theme={null}
    {
      "id": "evf_3VT3bHTCnPbrm",
      "entity_id": "ent_au22b1fbFJbp8",
      "status": "in_progress",
      "type": "phone",
      "method": "sms",
      "sms": {},
      "error": null,
      "created_at": "2025-09-15T14:31:00.000Z",
      "updated_at": "2025-09-15T14:31:00.000Z"
    }
    ```

    After the user provides the SMS code and completes identity verification (via [KBA](/reference/entities/verification-sessions/create-kba) or [Opal](/guides/opal)), the Entity transitions to `status: "active"` and products are unlocked.

    <Note>
      **Recommended: Use [Opal](/guides/opal)** for identity verification. Opal is Method's pre-built, white-labeled UI that handles both phone verification and identity verification in a single drop-in component. Most teams start here.
    </Note>

    ### After Verification

    Once verified, the Entity's `products` array expands and `restricted_products` clears:

    ```json theme={null}
    {
      "id": "ent_au22b1fbFJbp8",
      "status": "active",
      "verification": {
        "identity": {
          "verified": true,
          "matched": true,
          "latest_verification_session": "evf_9kR2fGhLmNpQ4",
          "methods": []
        },
        "phone": {
          "verified": true,
          "latest_verification_session": "evf_3VT3bHTCnPbrm",
          "methods": []
        }
      },
      "products": [
        "identity",
        "connect",
        "credit_score",
        "attribute"
      ],
      "restricted_products": [],
      "available_subscriptions": [
        "connect",
        "credit_score"
      ],
      "restricted_subscriptions": []
    }
    ```
  </Step>

  <Step title="Connect Liabilities">
    With Sarah verified, you can now discover her complete liability picture using [Connect](/guides/connect/overview). This performs a soft-pull credit report (no impact to her credit score) and returns all discovered accounts.

    ```bash theme={null}
    curl https://production.methodfi.com/entities/ent_au22b1fbFJbp8/connect \
      -X POST \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
      -H "Content-Type: application/json" \
      -d '{}'
    ```

    Connect discovers all of Sarah's open liabilities and returns them as account IDs:

    ```json theme={null}
    {
      "id": "cxn_iYGhvTRDnE4y7",
      "entity_id": "ent_au22b1fbFJbp8",
      "status": "completed",
      "accounts": [
        "acc_eKKmrXDpJBKgw",
        "acc_GV8WbmJW7KGRy",
        "acc_MLPKh9gQDDbT8",
        "acc_LbXE8wVYJLrKt",
        "acc_J3P9fayDFjpAy",
        "acc_eFFRV9zmpLREK"
      ],
      "requested_products": [],
      "requested_subscriptions": [],
      "error": null,
      "created_at": "2025-09-15T14:35:00.000Z",
      "updated_at": "2025-09-15T14:35:00.000Z"
    }
    ```

    ### What Was Discovered

    Each account ID maps to a liability that Method found on Sarah's credit report. You can retrieve any account to see its details:

    ```bash theme={null}
    curl https://production.methodfi.com/accounts/acc_eKKmrXDpJBKgw \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
    ```

    ```json theme={null}
    {
      "id": "acc_eKKmrXDpJBKgw",
      "holder_id": "ent_au22b1fbFJbp8",
      "type": "liability",
      "liability": {
        "mch_id": "mch_302086",
        "type": "credit_card",
        "name": "Chase Sapphire Reserve"
      },
      "status": "active",
      "products": [
        "update",
        "payment",
        "card_brand",
        "transaction"
      ],
      "created_at": "2025-09-15T14:35:00.000Z",
      "updated_at": "2025-09-15T14:35:00.000Z"
    }
    ```

    Here's what Sarah's full liability picture looks like:

    | Account ID          | Creditor               | Type          |
    | ------------------- | ---------------------- | ------------- |
    | `acc_eKKmrXDpJBKgw` | Chase Sapphire Reserve | Credit Card   |
    | `acc_GV8WbmJW7KGRy` | Citi Double Cash       | Credit Card   |
    | `acc_MLPKh9gQDDbT8` | Capital One            | Auto Loan     |
    | `acc_LbXE8wVYJLrKt` | Navient                | Student Loan  |
    | `acc_J3P9fayDFjpAy` | SoFi                   | Personal Loan |
    | `acc_eFFRV9zmpLREK` | Wells Fargo            | Mortgage      |
  </Step>
</Steps>

## What's Next

With Sarah's entity created, verified, and her liabilities discovered, you're ready to build the core PFM experience. Each of the following guides picks up where this setup leaves off.

<CardGroup cols={2}>
  <Card title="Onboarding & Discovery" icon="magnifying-glass" href="/guides/use-cases/pfm/onboarding-discovery">
    Deep dive into identity verification options, connect subscriptions for ongoing discovery, and vehicle enrichment for auto loans.
  </Card>

  <Card title="Dashboard & Insights" icon="chart-mixed" href="/guides/use-cases/pfm/monitoring-insights">
    Pull real-time balances, credit scores, card brand art, and entity-level financial health attributes.
  </Card>

  <Card title="Transactions & Payments" icon="money-bill-transfer" href="/guides/use-cases/pfm/transactions-payments">
    Stream credit card transactions and initiate bill payments to your users' creditors.
  </Card>
</CardGroup>
