OpenAPI Specification
openapi: 3.0.3
info:
title: Narmi Public account balances me API
version: v1
description: To read about Public API access and authentication, go to [API Overview](https://docs.narmi.com/docs/narmi-developer-docs/xl9dvbz84o11l-introduction).
termsOfService: https://www.narmi.com/policies/developer-terms-conditions
contact:
name: Narmi Support
email: support@narmi.com
servers:
- url: https://api.sandbox.narmi.dev/
description: ''
tags:
- name: me
paths:
/v1/me/:
get:
operationId: me_list
description: 'List the authenticated users profile information.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: List authenticated user information
tags:
- me
security:
- oauth2:
- banking:users:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UsersResponse'
examples:
ListAuthenticatedUser:
value:
users:
- email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2018-11-02T03:29:18.317000+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: true
user_category: personal
features:
ach: true
allow_olb_device_remembering: true
check_order: true
edit_scheduled_transfers: true
stop_payment_by_range: true
top_menu:
Dashboard:
url: /dashboard
Accounts:
accounts: true
Documents:
url: /statements
Support:
url: /support
Tools:
menu:
Transfer funds:
url: /transfer
Transactions:
url: /transactions
Cards:
url: /cards
Trends:
url: /trends
Automatic savings:
url: /automatic
Manage users:
url: /access_manager
feature_flag: indigo.OrganizationUser_permission
List all NAF options:
naf: true
internal_transfers: true
account_membership: true
address_change: true
alerts: true
allpoint_locator_atm: true
automatic_savings: OPT_IN
bill_pay: ipay
billshark: true
business_account_opening: true
personal_banking: true
business_banking: true
cards: true
coop_locator_atm: true
coop_locator_branch: true
core_based_alerts: false
existing_user_account_opening: true
existing_user_dao: true
instant_account_verification: mx
insurance: lemonade
login_and_enroll_blocked: false
mobile_banking: true
moneypass_locator_atm: true
deposit_sso: true
new_account_opening: true
offers: true
offline_verification: true
online_banking: true
p2p:
- m2m
paperless_statement_enrollment: true
paperless_statement_unenrollment: false
phone_change: true
push_notifications: true
rdc: true
refer_a_member: true
show_transaction_contact_support: true
statements: true
transfers: true
trends: mx
user_message_uploads: true
username: true
wires: true
stop_payment: true
beneficiaries: true
naf_app_management: true
profile_switcher: true
mobile_login_switcher: true
limits:
immediate_rdc:
'3': 7000
immediate_ach_pull:
'1': 1000
ach_pull:
'30': 5500
'1': 500
ach_push:
'3': 5000
indigo.Account_permission: '*'
indigo.AchTransfer_permission: '*'
integrations.base.Card_permission: '*'
indigo.ExternalAccount_permission: '*'
indigo.IntraInstitutionTransfer_permission: '*'
indigo.MemberFriend_permission: '*'
integrations.base.Payee_permission: '*'
integrations.base.Payment_permission: '*'
indigo.Transaction_permission: '*'
indigo.WireTransaction_permission: '*'
integrations.documents_permission: '*'
integrations.rdc_permission: '*'
can_change_username: false
can_change_estatements: true
zelle: false
hold_days:
rdc_hold_days: 4
ach_hold_days: 2
org_uuid: null
org_role: null
org_name: ''
business_permissions: []
dual_approval_required: false
is_staff: false
is_active: true
is_superuser: false
is_narmi: false
date_joined: '2018-03-26T14:43:59.004000+00:00'
last_login: '2024-04-22T21:06:02.006532+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: false
requires_enrollment_code_verification: false
enabled_estatements_at: null
is_converting: false
has_permitted_device: true
has_backup_codes: false
summary: List currently authenticated user
description: ''
x-stoplight:
id: rodbxuqyzfxgv
components:
schemas:
Address:
type: object
properties:
street_address:
type: string
street_address_2:
type: string
city:
type: string
region_code:
type: string
description: A region, province, parish, or any kind of subdivision represented by up to 3 characters. Typically an ISO 2-character state code.
postal_code:
type: string
description: Typically a five-digit numeric US ZIP Code.
country_code:
type: string
description: An ISO 3166-1 alpha-2 country code.
type:
type: string
required:
- city
- postal_code
- region_code
- street_address
x-stoplight:
id: xatva1xwqb0yk
UsersResponse:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/Profile'
required:
- users
x-stoplight:
id: oa4hi1e7x69nz
Profile:
type: object
description: ''
properties:
email:
type: string
readOnly: true
description: Email address for the registered user.
example: demo@narmitech.com
core_provided_email:
type: string
nullable: true
readOnly: true
description: Email address the user has registered to the core.
example: null
username:
type: string
nullable: true
readOnly: true
description: Username for the registered user.
example: testuser
id:
type: string
format: uuid
nullable: true
readOnly: true
description: UUID of the registered user. This value is used as the unique identifier for the user in the API.
example: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier:
type: string
readOnly: true
description: Core user ID, may be set to empty string if the requesting user does not have the `core_user_id` scope for the target user.
example: ''
updated_at:
type: string
format: date-time
nullable: true
readOnly: true
description: The last date-time that the information for this user was altered or saved.
example: '2018-11-02T03:29:18.317000+00:00'
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
readOnly: true
description: A list of addresses for the registered user. This list contains the primary address and the mailing address of the user, if it exists. This may be set to empty list if the requesting user does not have the `address` scope for the target user.
example: []
phone_numbers:
type: array
items:
$ref: '#/components/schemas/Phone'
readOnly: true
description: A list of phone numbers for the registered user. This list often includes only one phone number. This may be set to empty list if the requesting user does not have the `phone` scope for the target user.
example: []
notifications_enabled:
type: boolean
nullable: true
readOnly: true
description: Whether the user has registered a device for notifications. This field will also check to make sure that at least one of the devices is set to active.
first_name:
type: string
readOnly: true
description: First name of the registered user, can also include middle or second names. This may be set to empty string if the requesting user does not have the `name` scope for the target user.
example: ''
last_name:
type: string
readOnly: true
description: Last name of the registered user, may include items such as hyphenated/multiple surnames and generational suffixes (ie. Jr, Sr, III). This may be set to empty string if the requesting user does not have the `name` scope for the target user.
example: ''
paper_statements:
type: boolean
nullable: true
readOnly: true
description: Whether the registered user has opted to receive eStatements. This may be set to `null` if the requesting user does not have the `preferences` scope for the target user.
example: true
user_category:
description: Used to distinguish whether this is a `business` or `personal` user.
nullable: true
readOnly: true
example: personal
oneOf:
- $ref: '#/components/schemas/UserCategory4f2Enum'
- $ref: '#/components/schemas/NullEnum'
features:
type: object
additionalProperties: {}
nullable: true
readOnly: true
description: A set of user features which define what the user can and can not do.
example:
ach: true
allow_olb_device_remembering: true
check_order: true
edit_scheduled_transfers: true
stop_payment_by_range: true
top_menu:
Dashboard:
url: /dashboard
Accounts:
accounts: true
Documents:
url: /statements
Support:
url: /support
Tools:
menu:
Transfer funds:
url: /transfer
Transactions:
url: /transactions
Cards:
url: /cards
Trends:
url: /trends
Automatic savings:
url: /automatic
Manage users:
url: /access_manager
feature_flag: indigo.OrganizationUser_permission
List all NAF options:
naf: true
internal_transfers: true
account_membership: true
address_change: true
alerts: true
allpoint_locator_atm: true
automatic_savings: OPT_IN
bill_pay: ipay
billshark: true
business_account_opening: true
personal_banking: true
business_banking: true
cards: true
coop_locator_atm: true
coop_locator_branch: true
core_based_alerts: false
existing_user_account_opening: true
existing_user_dao: true
instant_account_verification: mx
insurance: lemonade
login_and_enroll_blocked: false
mobile_banking: true
moneypass_locator_atm: true
deposit_sso: true
new_account_opening: true
offers: true
offline_verification: true
online_banking: true
p2p:
- m2m
paperless_statement_enrollment: true
paperless_statement_unenrollment: false
phone_change: true
push_notifications: true
rdc: true
refer_a_member: true
show_transaction_contact_support: true
statements: true
transfers: true
trends: mx
user_message_uploads: true
username: true
wires: true
stop_payment: true
beneficiaries: true
naf_app_management: true
profile_switcher: true
mobile_login_switcher: true
limits:
immediate_rdc:
'3': 7000
immediate_ach_pull:
'1': 1000
ach_pull:
'30': 5500
'1': 500
ach_push:
'3': 5000
indigo.Account_permission: '*'
indigo.AchTransfer_permission: '*'
integrations.base.Card_permission: '*'
indigo.ExternalAccount_permission: '*'
indigo.IntraInstitutionTransfer_permission: '*'
indigo.MemberFriend_permission: '*'
integrations.base.Payee_permission: '*'
integrations.base.Payment_permission: '*'
indigo.Transaction_permission: '*'
indigo.WireTransaction_permission: '*'
integrations.documents_permission: '*'
integrations.rdc_permission: '*'
can_change_username: false
can_change_estatements: true
zelle: false
hold_days:
rdc_hold_days: 4
ach_hold_days: 2
org_uuid:
type: string
format: uuid
nullable: true
readOnly: true
description: The UUID of the organization which the user belongs to. This will be set to `null` if the user category is set to `personal`.
example: null
org_role:
description: The role of the user for the organization it belongs to. This will be set to `null` if the user category is set to `personal`.
nullable: true
readOnly: true
example: null
oneOf:
- $ref: '#/components/schemas/OrgRoleEnum'
- $ref: '#/components/schemas/NullEnum'
org_name:
type: string
readOnly: true
description: Name of the organization the user belongs to. This will be the DBA (Doing Business As) name if it exists, otherwise it will be set to the organization's legal name.
example: ''
business_permissions:
type: array
items:
$ref: '#/components/schemas/BusinessPermissionsField'
readOnly: true
description: Permissions that a user has to a business. The permissions which are granted are dictated by the users role in the organization. This will be set to an empty list for non-business users.
example: []
dual_approval_required:
type: boolean
nullable: true
readOnly: true
description: For business users, this field indicates whether wire transactions initiated by the user require approval from the organization. For non-business users this will always be set to `false`.
example: false
ach_dual_approval_required:
type: boolean
nullable: true
readOnly: true
description: For business users, this field indicates whether ACH transactions initiated by the user require approval from the organization. For non-business users this will always be set to `false`.
income_sources:
type: array
items:
$ref: '#/components/schemas/IncomeSource'
readOnly: true
description: A list of user reported income sources.
international_wire_dual_approval_required:
type: boolean
nullable: true
readOnly: true
description: For business users, this field indicates whether international wire transactions initiated by the user require approval from the organization. For non-business users this will always be set to `false`.
is_staff:
type: boolean
readOnly: true
description: Indicates whether the registered user is an employee of the financial institution.
example: false
is_active:
type: boolean
readOnly: true
description: Indicates whether the user has been disabled.
example: true
is_superuser:
type: boolean
readOnly: true
description: Indicates whether the user is an admin.
example: false
is_narmi:
type: boolean
readOnly: true
description: Indicates whether the user is a Narmi user.
example: false
date_joined:
type: string
format: date-time
readOnly: true
description: The date-time the user was enrolled in the Narmi system.
example: '2018-03-26T14:43:59.004000+00:00'
last_login:
type: string
format: date-time
nullable: true
readOnly: true
description: The date-time the user last logged in.
example: '2024-04-22T21:06:02.006532+00:00'
segment:
type: string
readOnly: true
description: The banking segment which the user is a member of. These values can be unique for different financial institutions.
example: ''
metadata:
type: object
additionalProperties: {}
readOnly: true
description: Metadata for the registered user, this is often set as an empty object `{}`.
example: {}
has_username:
type: boolean
readOnly: true
description: Whether the username was defined by the user or was autogenerated by the system.
example: true
has_password:
type: boolean
readOnly: true
description: Whether the password was set by the user.
example: true
has_accepted_latest_terms:
type: boolean
readOnly: true
description: Whether the user has accepted the latest terms of service.
example: false
requires_enrollment_code_verification:
type: boolean
readOnly: true
description: Whether the user has verified their account. This can prevent the user from logging in. Enrollment can be completed via `/v1/enroll_verify/`.
example: false
enabled_estatements_at:
oneOf:
- type: string
format: date-time
- type: string
nullable: true
readOnly: true
description: Date-time the user opted into electronic statements.
example: null
is_converting:
type: boolean
readOnly: true
description: Whether the user is in the process of enrolling into online banking.
example: false
has_permitted_device:
type: boolean
readOnly: true
description: When 2FA is enabled for the FI, this field indicates whether the user has a device which they can use to authenticate to the system.
example: true
has_backup_codes:
type: boolean
readOnly: true
description: Whether the registered user has a one-time password backup code for two-factor authentication.
example: false
support_teams:
type: array
items:
type: string
format: uuid
nullable: true
readOnly: true
description: The UUIDs of the support teams which the user belongs to. This will be set to `null` if the user does not belong to a support team.
session_oidc_provider:
type: string
nullable: true
readOnly: true
description: The OIDC provider associated with the user's current session, if any.
x-stoplight:
id: g4tqfglwr85hp
UserCategory4f2Enum:
enum:
- personal
- business
type: string
x-stoplight:
id: vmvxka9zperhg
IncomeTypeEnum:
enum:
- employed
- part_time
- not_employed
- self_employed
- retirement
- other
type: string
description: '* `employed` - Employed
* `part_time` - Part time
* `not_employed` - Not employed
* `self_employed` - Self employed
* `retirement` - Retirement
* `other` - Other'
x-stoplight:
id: vlxoho9hsykzd
IncomeSource:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
income:
type: integer
maximum: 2147483647
minimum: 0
income_type:
$ref: '#/components/schemas/IncomeTypeEnum'
mortgage_rent:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
industry:
type: string
maxLength: 128
occupation:
type: string
maxLength: 128
required:
- income
- income_type
x-stoplight:
id: cf5t7cvffrpat
Phone:
type: object
properties:
number:
type: string
device_id:
type: string
nullable: true
device_request_id:
type: string
nullable: true
required:
- number
x-stoplight:
id: vm2qlwcduqdwc
OrgRoleEnum:
enum:
- Account Holder
- Admin
- Collaborator
- No Permissions
- Viewer
type: string
x-stoplight:
id: bcxpswdnbrned
BusinessPermissionsField:
type: object
properties:
model_str:
type: string
operation:
type: string
uuid:
type: string
format: uuid
required:
- model_str
- operation
- uuid
x-stoplight:
id: rhmxqgl8o5k8x
NullEnum:
enum:
- null
x-stoplight:
id: 2493tmzk9db0y
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /v2/oauth/authorize/
tokenUrl: /v2/oauth/token/
scopes:
banking:accounts:read: Can read account information.
banking:transactions:read: Can read transaction information.
banking:scheduled_transfers:read: Can read scheduled transfer information.
banking:scheduled_transfers:write: Can create and update scheduled transfers.
banking:accounts:write: Can update account information.
banking:transactions:write: Can update transaction information.
banking:users:read: Can read user profile information.
banking:products:read: Can read product information.
banking:documents:read: Can read user statements and documents.
x-stoplight:
id: 68n444msv6n7x