For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Contact SupportGet Started
  • Modernfi Developer Hub
    • Overview for Developers
    • Getting Started
  • Topics
    • Using the Sandbox
    • Authentication
    • Account Structure
    • Idempotency
    • Transaction Records and Sweeps
    • Balance Fields
    • Interest
    • Reports
    • Versioning
    • Changelog
  • API Reference
      • GETList Accounts
      • POSTCreate Account
      • GETGet Account
      • DELClose Account
      • PATCHUpdate Account
      • GETGet Account Allocation
LogoLogo
Contact SupportGet Started
API ReferenceAccounts

Create Account

POST
/digital-banking/v1/accounts
POST
/digital-banking/v1/accounts
$curl -X POST https://api.modernfi.com/digital-banking/v1/accounts \
> -H "idempotency-key: idempotency-key" \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "account_title": "string",
> "account_type": "MMDA",
> "depositor_ids": [
> "string"
> ]
>}'
1{
2 "id": "string",
3 "institution_id": "string",
4 "signer_primary": "string",
5 "account_title": "string",
6 "interest_rate": "string",
7 "interest_rate_tiers": [
8 {
9 "min_balance": "string",
10 "max_balance": "string",
11 "rate": "string",
12 "floating_spread": "string"
13 }
14 ],
15 "insurance_limit": "string",
16 "account_type": "MMDA",
17 "created_at": "string",
18 "is_joint_account": true,
19 "total_balance": "string",
20 "pending_balance": "string",
21 "is_reciprocation_prioritized": true,
22 "is_receiving_printed_statements": true,
23 "closed_at": "string",
24 "signer_secondary": "string",
25 "beneficiary_name": "string",
26 "beneficiary_tin": "string",
27 "institution_sweep_account_id": "string",
28 "institution_return_account_id": "string",
29 "institution_branch_id": "string",
30 "depositors": [
31 {
32 "id": "string",
33 "institution_id": "string",
34 "institution_depositor_id": "string",
35 "first_name": "string",
36 "last_name": "string",
37 "entity_name": "string",
38 "is_organization": true,
39 "phone_numbers": [
40 {
41 "number": "string",
42 "is_primary": true
43 }
44 ],
45 "emails": [
46 {
47 "email_address": "string",
48 "is_primary": true
49 }
50 ],
51 "addresses": [
52 {
53 "street": "string",
54 "city": "string",
55 "state": "string",
56 "zip": "string",
57 "country_code": "string",
58 "is_primary": true
59 }
60 ],
61 "depositor_type": "CONSUMER",
62 "ownership_category": "JOINT",
63 "account_officer": "string",
64 "notes": "string",
65 "tin": "string"
66 }
67 ],
68 "managed_sweep_target_balance": "string",
69 "shadow_account": {
70 "id": "string",
71 "account_number": "string",
72 "account_type": "MMDA",
73 "closed_at": "string"
74 },
75 "notes": "string",
76 "pricing_group_id": "string",
77 "institution_account_id": "string",
78 "institution_alternative_id": "string"
79}
Was this page helpful?
Previous

Get Account

Next
Built with

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

idempotency-keystringRequired

Request

This endpoint expects an object.
account_titlestringRequired<=128 characters
account_typeenumRequired
Allowed values:
depositor_idslist of stringsRequired
signer_primarystring or nullOptional<=64 characters
depositorobject or nullOptional
New depositor to create and link to this account
interest_rate_tierslist of objectsOptional

Used to define tiers of interest rates based on account balance. If only one tier is needed, use the interest_rate field instead.

program_tagslist of stringsOptional
is_apybooleanOptionalDefaults to false

Indicates if the interest rate is an Annual Percentage Yield (APY). If ommitted or false, the rate is considered a nominal interest rate.

interest_ratedouble or nullOptional>=0

Interest rate must be between 0 and 1 (e.g., 0.04 for 4%).

signer_secondarystring or nullOptional<=64 characters
beneficiary_namestring or nullOptional<=64 characters
beneficiary_tinstring or nullOptional<=9 characters
institution_sweep_account_idstring or nullOptional<=64 characters
institution_return_account_idstring or nullOptional<=64 characters
institution_branch_idstring or nullOptional<=64 characters
institution_cost_center_idstring or nullOptional<=64 characters
cost_center_idstring or nullOptionalformat: "uuid"
managed_sweep_target_balancedouble or string or nullOptional

Target balance for managed sweep accounts. Must be a non-negative USD amount.

shadow_accountobject or nullOptional
Configuration for shadow account associated with this account.
account_agreement_file_datastring or nullOptional

Base64 encoded PDF file data (max 25MB)

notesstring or nullOptional<=256 characters
Notes for the account
pricing_group_idstring or nullOptionalformat: "uuid"
Pricing group ID associated with the account
is_reciprocation_prioritizedbooleanOptionalDefaults to false
Whether this account should be prioritized for reciprocation.
institution_account_idstring or nullOptional<=32 charactersDeprecated

Response

Successful Response
idstring
institution_idstring
signer_primarystring or null
account_titlestring
interest_ratestring
interest_rate_tierslist of objects
insurance_limitstring
account_typeenum
Allowed values:
created_atstring
is_joint_accountboolean
total_balancestring
pending_balancestring
is_reciprocation_prioritizedboolean
is_receiving_printed_statementsboolean
closed_atstring or null
signer_secondarystring or null
beneficiary_namestring or null
beneficiary_tinstring or null
institution_sweep_account_idstring or null
institution_return_account_idstring or null
institution_branch_idstring or null
depositorslist of objects or null
managed_sweep_target_balancestring or null
shadow_accountobject or null
notesstring or null
pricing_group_idstring or null
institution_account_idstring or nullDeprecated
institution_alternative_idstring or nullDeprecated

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
422
Unprocessable Entity Error
500
Internal Server Error