Skip to main content

Overview

Verify assets and income and generate verification reports by allowing users to directly connect their financial institutions.
Verify assets and income with Argyle banking reports.

Supported report types

Workflow

Argyle’s Postman collection contains examples of the banking endpoints mentioned below.

Create an Argyle user

The Sandbox testing environment for banking supports a maximum of 500 users. To stay within this limit, implement user-management workflows and remove inactive users when they are no longer needed.
  1. Create or update an Argyle user.
  2. In the request body, include the following required user fields (only required for banking reports):
  • The top-level (root) object should contain user details (user being the borrower in most cases).
If all fields cannot be populated, speak to your Argyle representative.
  • The external_metadata object should contain details about the person or entity making the lending decision.
The external_metadata object is optional.
{
    "first_name": "Bob",
    "last_name": "Jones",
    "email": "[email protected]",
    "phone_number": "555-111-2222", // must be 10 or 11 digits (with or without hyphens) — e.g. 5551112222 or 555-111-2222 or 15551112222 or 1-555-111-2222
    "ssn": "123456789", // must be 9 digits (with or without hyphens) — e.g. 123456789 or 123-45-6789
    "address": {
        "city": "New York",
        "line1": "759 Victoria Plaza",
        "line2": null,
        "state": "New York",
        "country": "US",
        "postal_code": "10014"
    },
    "birth_date": {
      "year": 1980, // integer (must be 1900 or later)
      "month": 12, // integer (must be between 1 and 12)
      "day": 3 // integer (must be between 1 and 31)
    },
    "external_metadata": { // this object & all its properties are optional
        "open_banking": {
            "end_user": {
                "name": "Loan Officer",
                "address": "759 Victoria Plaza",
                "city": "New York",
                "state": "NY",
                "zip": "10014",
                "phone": "7778889999" // must be 10 or 11 digits (with or without hyphens) — e.g. 5551112222 or 555-111-2222 or 15551112222 or 1-555-111-2222
            }
        }
    }
}
  1. Create a Connect URL — a temporary link that allows the user to securely authorize access to their bank data.
  2. In the request body, make sure to specify via the webhook field where to receive Connect Event webhooks.
Each environment (Sandbox and Production) requires its own webhook. Subscriptions do not transfer between environments.
  1. Share the Connect URL with the user directly, or embed the bank connection experience within your application.

Generate a banking report

  1. When you receive a Connect Event webhook with "event_type": "done" a banking report can be generated — this event signifies the user has connected their banking accounts and successfully authorized the related connections.
  2. Generate a banking report and specify the report type in the request.
  3. (Optional) Specify via the webhook field where to receive the Connect Event webhook notifying you that the report has been generated.
  4. Save the file_url and json_url values returned in the response after generating a report.
If the user only connected account types (e.g. Line of credit) that are not eligible for the specified report type, the API will return a 400 (Bad Request) response:
{
    "detail": "INVALID_ARGUMENT: Code: 5030, error: No matching account types apply"
}

Retrieve report PDFs and JSONs

  1. When you receive a Connect Event webhook with "event_name": "done" a banking report has been successfully generated and can be retrieved.
  2. To retrieve a PDF version of the report, call GET {file_url} — make sure to include Argyle authentication headers.
  3. To retrieve a JSON version of the report, call GET {json_url} — make sure to include Argyle authentication headers.

Day 1 Certainty® and AIM

For mortgage use cases, the reference number for Day 1 Certainty® or AIM is provided in the portfolio field returned after calling GET {json_url}. In Encompass®, this reference number can be submitted in the Finicity Borrower field:
Submit GSE reference numbers to the Finicity borrower field in Encomapss.

Connect events

Connect Event webhooks are sent:
  • When the user completes certain steps of the connection process.
  • When a report is being and has been successfully generated.
Most common Connect Event webhooks (examples):
  {
    "user": "01975aea-3882-d5fb-7eb5-e4821a573167",
    "event_type": "started",
    "event_id": "1749577051464-49bbb425bbe60e0fdfd14da0",
    "payload": {}
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "institutionSupported",
    "event_id": "1749604002888-f1342c3918d21aee221d5388",
    "payload": {
      "institution": "102168"
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "adding",
    "event_id": "1749604018215-941d6b8cd2ec7f1d3353ccab",
    "payload": {
      "institution": "102168",
      "oauth": "false"
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "invalidCredentials",
    "event_id": "1749604019315-a7f974879a932f939dd45532",
    "payload": {
      "institution": "102168"
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "adding",
    "event_id": "1749604149048-d2ffdf7f0954f9b7029e219d",
    "payload": {
      "institution": "102168",
      "oauth": "false"
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "discovered",
    "event_id": "1749604157634-d425a8628178de589cc447e7",
    "payload": {
      "accounts": [
        {
          "id": 8057734470,
          "number": "xx2121",
          "name": "401K",
          "balance": 9005,
          "type": "401k",
          "status": "pending",
          "institution_login": 8029207213
        },
        {
          "id": 8057734471,
          "number": "xx2020",
          "name": "IRA",
          "balance": 7030,
          "type": "ira",
          "status": "pending",
          "institution_login": 8029207213
        },
        {
          "id": 8057734472,
          "number": "xx3333",
          "name": "Credit Card",
          "balance": -1952.71,
          "type": "creditCard",
          "status": "pending",
          "institution_login": 8029207213
        },
        {
          "id": 8057734474,
          "number": "xx2222",
          "name": "Savings",
          "balance": 22327.3,
          "type": "savings",
          "status": "pending",
          "institution_login": 8029207213
        }
      ],
      "mfa": null,
      "institution": "102168"
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "added",
    "event_id": "1749604256032-f2402c85f88e2188534d5b2b",
    "payload": {
      "institution": "102168",
      "accounts": [
        {
          "id": "8057734474",
          "number": "xx2222",
          "real_account_number_last4": "2222",
          "account_number_display": "2222",
          "name": "Savings",
          "balance": 22327.3,
          "type": "savings",
          "status": "active",
          "user": "01975c4e-fee2-0162-a341-e5f61359da49",
          "institution": "102168",
          "balance_date": "2025-06-11T01:09:17.000Z",
          "created_date": "2025-06-11T01:09:17.000Z",
          "last_updated_date": "2025-06-11T01:10:55.000Z",
          "currency": "USD",
          "institution_login": "8029207213",
          "display_position": "1",
          "financialinstitution_account_status": null,
          "account_nickname": "Savings",
          "market_segment": "personal"
        }
      ],
      "oauth": false
    }
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_type": "done",
    "event_id": "1749604309359-1248d979c904efc4519431f8",
    "payload": {}
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_name": "inProgress",
    "id": "kkc7xyd800ur",
    "type": "voa",
    "status": "inProgress",
    "portfolio_id": "eumj6fqkqzw6-3-port",
    "report_custom_fields": null
  }
  {
    "user": "01975c4e-fee2-0162-a341-e5f61359da49",
    "event_name": "done",
    "id": "kkc7xyd800ur",
    "type": "voa",
    "status": "success",
    "portfolio_id": "eumj6fqkqzw6-3-port",
    "report_custom_fields": null
  }

Testing profiles

When you’re ready to begin testing, contact your Argyle Customer Success Manager to enable banking permissions.
The Sandbox testing environment for banking supports a maximum of 500 users. To stay within this limit, implement user-management workflows and remove inactive users when they are no longer needed.
The following sample test profiles can be connected to:
  • Sandbox — the FinBank Profiles A or FinBank Profiles B financial institutions
  • Production — the FinBank Billable or FinBank Oauth Billable financial institutions
UsernamePasswordAccount TypesSupported Products
profile_02profile_02Savings, IRA, 401k, Credit Cardvoa, voi, voai
profile_03profile_03Checking, Personal Investment, 401K, Roth, Savings (Joint Account owners)voa, voi, voai
profile_04profile_04Checking, 403B, 529, Rollover, Mortgagevoa, voi, voai
profile_05profile_05Checking, Investment, Stocks, UGMA, UTMA (Joint Account owners)voa, voi, voai
profile_06profile_06Checking, Retirement, KEOGH, 457, Credit Cardvoa, voi, voai
profile_07profile_07Checking, Stocks, CD, Investment Tax-Deferred, Employee Stockvoa, voi, voai
profile_08profile_08Checking, Primary Savings, Money Market, 401A, Line of creditvoa, voi, voai
profile_09profile_09Checking, Savings, Checking Failed Report. Errors include 102, 103, 185voa *(failed report)*voi *(failed report)*voai (failed report)
For specific scenario testing, the following sample test users are also available:
Sue WealthyRiver PaycheckAlex Student
Usernamesue_wealthyriver_paycheckalex_student
Passwordprofile_700profile_703profile_704
DescriptionSue is working as a Product Manager with a good steady income, a mortgage, and multiple investment accounts. She has a loan account and leases a car. Sue travels a few times a year. She has typical expenses like groceries, clothes, entertainment, gym membership, car expenses, and she has a pet.River works in construction. He rents an apartment and has typical expenses like groceries, clothes, entertainment, household and car expenses. He has some savings but no investments, no loans and no credit cards. In some months, River’s expenses exceed his income.Alex is working full-time with a good salary but she is still paying off her student loan. She makes regular monthly repayments, but she still has over $30,000 to pay off. Alex has typical expenses like groceries, clothes, entertainment, household, and car expenses. She has limited savings and she has started an investment account.