Skip to main content
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.
1

Create an Entity

An Entity 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.
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.
{
  "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"
}
2

Verify the User

Before Method can discover Sarah’s accounts, she must complete identity verification. 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.
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": {}
  }'
{
  "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 or Opal), the Entity transitions to status: "active" and products are unlocked.
Recommended: Use 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.

After Verification

Once verified, the Entity’s products array expands and restricted_products clears:
{
  "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": []
}
3

Connect Liabilities

With Sarah verified, you can now discover her complete liability picture using Connect. This performs a soft-pull credit report (no impact to her credit score) and returns all discovered accounts.
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:
{
  "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:
curl https://production.methodfi.com/accounts/acc_eKKmrXDpJBKgw \
  -H "Method-Version: 2025-12-01" \
  -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
{
  "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 IDCreditorType
acc_eKKmrXDpJBKgwChase Sapphire ReserveCredit Card
acc_GV8WbmJW7KGRyCiti Double CashCredit Card
acc_MLPKh9gQDDbT8Capital OneAuto Loan
acc_LbXE8wVYJLrKtNavientStudent Loan
acc_J3P9fayDFjpAySoFiPersonal Loan
acc_eFFRV9zmpLREKWells FargoMortgage

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.

Onboarding & Discovery

Deep dive into identity verification options, connect subscriptions for ongoing discovery, and vehicle enrichment for auto loans.

Dashboard & Insights

Pull real-time balances, credit scores, card brand art, and entity-level financial health attributes.

Transactions & Payments

Stream credit card transactions and initiate bill payments to your users’ creditors.