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â
- cURL
- Node.js
- Python
/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"
}
}'
/accounts
const account = await method.accounts.create({
holder_id: 'ent_y1a9e1fbnJ1f3',
ach: {
routing: '367537407',
number: '57838927',
type: 'checking',
},
});
/accounts
account = method.accounts.create({
'holder_id': 'ent_y1a9e1fbnJ1f3',
'ach': {
'routing': '367537407',
'number': '57838927',
'type': 'checking'
}
})
{
"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_id | account_number | Liability type |
---|---|---|
mch_302086 | 4936494462408721 | Credit card |
mch_304444 | 6720443305 | Student loan |
mch_300503 | 456637152 | Auto loan |
mch_309067 | 5142211993 | Mortgage |
- cURL
- Node.js
- Python
/merchants?name={name}
curl "https://production.methodfi.com/merchants?name=fedloan" \
-H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
/merchants?name={name}
const merchants = await method.merchants.list({ name: 'fedloan' });
/merchants?name={name}
merchants = method.merchants.list({'name': 'fedloan'})
[
{
"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.
- cURL
- Node.js
- Python
/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"
}
}'
/accounts
const account = await method.accounts.create({
holder_id: 'ent_au22b1fbFJbp8',
liability: {
mch_id: 'mch_2',
number: '1122334455',
}
});
/accounts
account = method.accounts.create({
'holder_id': 'ent_au22b1fbFJbp8',
'liability': {
'mch_id': 'mch_2',
'number': '1122334455'
}
})
{
"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"
}