Skip to main content

Create an account

There are two types of accounts. ACH accounts (checking or savings), and liability accounts (student loans, credit cards, mortgages, and other types of debt accounts). Each account is owned by an entity, and an entity can own multiple accounts.

â„šī¸ See the account object for details on the API.


ACH account​

You only need basic ACH information to start creating an ACH account:

  • A routing number which is used to identify a bank account or financial institution.
  • An account number that uniquely identifies the account.
  • The type of ACH account (checking or savings).

This information can be collected from your users through the following methods:

  • Plaid Auth - Plaid provides this information within their Plaid Auth product.
  • MX - MX provides this information within their Verification product
  • User provided - you can alternatively collect this information from your users using your own implementation.
note

The holder_id field in the request below refers to the id of an entity that owns this account. If you have not created an entity, see create an entity.

tip

If the newly created ACH account does not contain the payments:send capability, you must next verify this account in order to start sending funds from it. See the ACH Verification for more details.

Request​

POST /accounts
curl https://production.methodfi.com/accounts \
-X POST \
-H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
-H "Content-Type: application/json" \
-d '{
"holder_id": "ent_y1a9e1fbnJ1f3",
"ach": {
"routing": "367537407",
"number": "57838927",
"type": "checking"
}
}'
RESPONSE
{
"id": "acc_b9q2XVAnNFbp3",
"holder_id": "ent_y1a9e1fbnJ1f3",
"type": "ach",
"ach": {
"routing": "367537407",
"number": "57838927",
"type": "checking"
},
"liability": null,
"clearing": null,
"metadata": null,
"status": "active",
"capabilities": [
"payments:receive"
],
"error": null,
"created_at": "2020-12-09T00:40:51.107Z",
"updated_at": "2020-12-09T00:40:51.107Z"
}

Response​

{
"id": "acc_b9q2XVAnNFbp3",
"holder_id": "ent_y1a9e1fbnJ1f3",
"type": "ach",
"ach": {
"routing": "367537407",
"number": "57838927",
"type": "checking"
},
"liability": null,
"clearing": null,
"metadata": null,
"status": "active",
"capabilities": [
"payments:receive"
],
"error": null,
"created_at": "2020-12-09T00:40:51.107Z",
"updated_at": "2020-12-09T00:40:51.107Z"
}

Liability account​

Liability accounts are accounts that hold a type of debt or balance owed to a financial institution, and can only be used to receive payments. Each liability account belongs to a financial institution, which is also referred to as a merchant in the Method ecosystem.

The verification process for liability accounts happen immediately upon creation. This process determines if the provided account number exists within a specific financial institution.

Create using Method Data​

💡 You can automatically retrieve all of an entity's liabilities using Method Data. See the retrieve an entity's debts guide to learn more.

Create using API​

info

To use the direct API method on a live environment you need to be PCI Compliant. Please contact us for more info.

Before creating a liability account, ensure that you have gathered the following liability account information:

  • The mch_id of the merchant that corresponds to the account's financial institution.
  • The account_number for the liability account.
  • The id of the entity that owns the account.

Search for a merchant​

Merchants are financial institutions that accept payments for liability accounts. A merchant's mch_id is required to create a liability account. Below is an example on how to search for a merchant.

â„šī¸ See list merchants for details on the API.

Simulate Sync​

To simulate liability account syncs in the dev environments, provide a mch_id and account_number pair from the table below.

â„šī¸ See Sync an account for details on the API.

caution

Providing a mch_id and account_number pair in the dev environments that is not listed in the table below will not enable the data:sync capability for the account.

mch_idaccount_numberLiability type
mch_3020864936494462408721Credit card
mch_3044446720443305Student loan
mch_300503456637152Auto loan
mch_3090675142211993Mortgage
GET /merchants?name={name}
curl "https://production.methodfi.com/merchants?name=fedloan" \
-H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
RESPONSE
[
{
"mch_id": "mch_2",
"parent_name": "FedLoan",
"name": "FedLoan Servicing - Student Loans",
"logo": "https://static.methodfi.com/mch-logos/1616215578688-fedloan.png",
...
}
]

Create liability account​

After searching for the corresponding merchant, you can now create the liability account.

POST /accounts
curl https://production.methodfi.com/accounts \
-X POST \
-H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
-H "Content-Type: application/json" \
-d '{
"holder_id": "ent_au22b1fbFJbp8",
"liability": {
"mch_id": "mch_2",
"number": "1122334455"
}
}'
RESPONSE
{
"id": "acc_Zc4F2aTLt8CBt",
"holder_id": "ent_au22b1fbFJbp8",
"type": "liability",
"ach": null,
"liability": {
"mch_id": "mch_2",
"mask": "4455",
"type": "student_loan",
"payment_status": "active",
"data_status": "active",
"data_last_successful_sync": "2022-06-14T15:13:02.546Z",
"data_status_error": null,
"data_source": "financial_institution",
"data_updated_at": "2023-01-22T01:23:36.047Z",
"ownership": "primary",
"student_loan": {
"name": "FedLoan Student Loan",
"sub_type": "federal",
"sequence": 6,
"balance": 1952634,
"original_loan_amount": null,
"last_payment_amount": 1150,
"last_payment_date": "2022-04-22",
"next_payment_due_date": "2022-10-28",
"next_payment_minimum_amount": 0,
"disbursed_at": "2018-01-22",
"interest_rate_percentage": 3.4,
"interest_rate_type": "fixed",
"interest_rate_source": "financial_institution",
"delinquent_status": null,
"delinquent_amount": null,
"delinquent_period": null,
"delinquent_action": null,
"delinquent_start_date": null,
"delinquent_major_start_date": null,
"delinquent_status_updated_at": null,
"delinquent_history": []
}
},
"clearing": null,
"metadata": null,
"status": "active",
"capabilities": [
"payments:receive",
"data:sync"
],
"error": null,
"created_at": "2020-12-09T02:56:19.548Z",
"updated_at": "2020-12-09T02:56:19.548Z"
}