{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/narmi/main/json-schema/narmi-automatic-savings-enrollment-schema.json", "title": "AutomaticSavingsEnrollment", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/narmi-automatic-savings-enrollment-api-openapi.yml#/components/schemas/AutomaticSavingsEnrollment", "type": "object", "properties": { "source_account": { "$ref": "#/$defs/Account" }, "destination_account": { "$ref": "#/$defs/Account" }, "automatic_savings_eligible": { "type": "boolean" }, "automatic_savings_active": { "type": "boolean" } }, "x-stoplight": { "id": "qd8r4jdkwdvpe" }, "$defs": { "Account": { "type": "object", "description": "A representation of either an account or an external account.", "properties": { "name": { "type": "string", "readOnly": true, "description": "Customer-facing name for the account, can be customized per user, but defaults to account name or product name." }, "nickname": { "type": "string", "readOnly": true, "description": "Customizable nickname for the account, this is blank if custom name is not set." }, "id": { "type": "string", "readOnly": true, "description": "UUID of the account, can be used to query the account elsewhere in the API." }, "number": { "type": "string", "readOnly": true, "description": "Account number." }, "type": { "type": "string", "readOnly": true, "description": "Account type, can be set to `credit`, `debit`, or `deposit`." }, "product": { "allOf": [ { "$ref": "#/$defs/Product" } ], "readOnly": true, "description": "Product type for the account, can be one of `checking`, `savings`, `certificate_of_deposit`, `hsa`, `ira`, `ira_certificate_of_deposit`, `money_market`, `line_of_credit`, `credit_card`, `loan`, `mortgage`, or `lease`." }, "updated_at": { "type": "string", "format": "date-time", "readOnly": true, "description": "Date the account was last updated or changed." }, "users": { "type": "array", "items": { "type": "string" }, "readOnly": true }, "features": { "type": "object", "additionalProperties": {}, "readOnly": true, "description": "List of capabilities for the account. Dictates when and how money can be moved to and from the account. Can contain any of the values `transfer_destination`, `transfer_source`, `ach_destination`, `ach_source`, `check_order`, `stop_payment`, `check_withdrawal`, `external_loan_management`, `zero_balance`, `m2m_source`, and `m2m_destination`." }, "routing": { "type": [ "string", "null" ], "readOnly": true, "description": "Routing number for the account." }, "loan_details": { "allOf": [ { "$ref": "#/$defs/LoanDetails" } ], "readOnly": true, "description": "Information related to loan payments associated with the account." }, "source": { "allOf": [ { "$ref": "#/$defs/SourceEnum" } ], "readOnly": true, "description": "Set to `institution` for internal accounts and `external` for external accounts.\n\n* `institution` - institution\n* `external` - external" }, "state": { "allOf": [ { "$ref": "#/$defs/State973Enum" } ], "description": "Indicates whether the account is active (unlocked) or inactive (locked). This does not affect the data returned from the list accounts endpoint.", "readOnly": true }, "favorited": { "type": "boolean", "readOnly": true, "description": "Per-user preference used to mark favorited accounts. This does not affect the data returned from the list accounts endpoint." }, "hidden": { "type": "boolean", "default": false, "readOnly": true, "description": "Per-user preference to mark hidden accounts. This does not affect the data returned from the list accounts endpoint." }, "out_of_date": { "type": "boolean", "readOnly": true, "description": "Whether the account has been recently updated successfully from the upstream core banking system. The threshold is defined by a setting that can vary, but by default is set to 300 seconds." }, "updated_from_source_at": { "type": [ "string", "null" ], "format": "date-time", "readOnly": true, "description": "Last datetime the account was updated from the core." }, "check_micr": { "type": [ "string", "null" ], "readOnly": true, "description": "A unique identifier that has a one-to-one mapping with an account number. This identifier is typically printed on the MICR line of physical checks written against this account and/or used in other externally facing bank payments like ACH or wires. Depending on the financial institution, it may be the same as account number or a different value." }, "metadata": { "type": "object", "additionalProperties": {}, "readOnly": true, "description": "Additional information about the account such as interest rates, minimum balances, maturity date, etc." }, "balances": { "allOf": [ { "$ref": "#/$defs/AccountBalance" } ], "description": "Primary, available, and ledger balance information." }, "fi_name": { "type": [ "string", "null" ], "readOnly": true, "description": "Display name of the financial institution the account belongs to, derived from the routing number on the account." }, "created_at": { "type": "string", "readOnly": true, "description": "Date account was created in the database." }, "verified": { "type": "boolean", "readOnly": true, "description": "Whether the account has been verified. Always true for internal accounts." }, "fi_svg": { "type": "string", "readOnly": true, "description": "Logo data for the financial institution in SVG (HTML) format." }, "organization": { "type": [ "object", "null" ], "additionalProperties": {}, "readOnly": true, "description": "Organization associated with this account, if applicable." } }, "required": [ "balances" ], "x-stoplight": { "id": "wknvwcjc17vw6" } }, "AccountBalance": { "type": "object", "description": "A representation of an account with respect to its balance totals.", "properties": { "id": { "description": "Account UUID prefixed with \"abl_\" for use with this endpoint.", "type": "string", "readOnly": true }, "account_id": { "type": "string", "format": "uuid", "readOnly": true, "description": "UUID to the associated account." }, "primary": { "maximum": 10000000000000.0, "minimum": -10000000000000.0, "description": "The balance to be presented to the customer. Set to the available balance for non CD deposit accounts, and ledger balance otherwise. May be null for external accounts that have not yet been synced with balance data.", "type": [ "number", "null" ], "format": "double", "readOnly": true }, "available": { "maximum": 10000000000000.0, "minimum": -10000000000000.0, "description": "The funds immediately available to use, including any pending transactions or temporary holds on the account. May be null for external accounts that have not yet been synced with balance data.", "type": [ "number", "null" ], "format": "double", "readOnly": true }, "ledger": { "maximum": 10000000000000.0, "minimum": -10000000000000.0, "description": "The total amount of funds in the account not including temporary holds or pending transactions. May be null for external accounts that have not yet been synced with balance data.", "type": [ "number", "null" ], "format": "double", "readOnly": true }, "updated_at": { "type": "string", "format": "date-time", "readOnly": true, "description": "Date when the account was last updated." } }, "x-stoplight": { "id": "sswt197xsfwzw" } }, "LoanDetails": { "type": "object", "properties": { "minimum_payment": { "maximum": 1000000000000000, "minimum": -1000000000000000, "description": "A field that returns the original value in the currency's smallest unit (e.g. cents).", "type": "integer", "readOnly": true }, "interest_rate": { "type": "string", "format": "decimal", "pattern": "^-?\\d{0,16}(?:\\.\\d{0,4})?$", "readOnly": true }, "next_payment_at": { "type": "string", "format": "date-time", "readOnly": true } }, "x-stoplight": { "id": "quxztlucbcd9s" } }, "Product": { "type": "object", "properties": { "id": { "type": [ "string", "null" ], "readOnly": true }, "type": { "type": "string", "readOnly": true }, "description": { "type": "string", "readOnly": true } }, "x-stoplight": { "id": "wzdifft3exj5t" } }, "SourceEnum": { "enum": [ "institution", "external" ], "type": "string", "description": "* `institution` - institution\n* `external` - external", "x-stoplight": { "id": "z2qbah6dv7xog" } }, "State973Enum": { "enum": [ "active", "inactive", "pending", "verified", "removed" ], "type": "string", "x-stoplight": { "id": "sx7oslmzp4bem" } } } }