openapi: 3.0.3 info: title: Candescent DI API version: 1.9.0 description: > Welcome to the **Candescent Digital Insight API** documentation. This comprehensive API platform enables financial institutions, Marketplace Partners, and developers to build powerful digital banking experiences. ## Getting Started New to the Candescent API? Start here: - **[Quick Start Guide](/guides/getting-started/quickstart/)** - Make your first API call in minutes - **[API Categories Overview](/guides/getting-started/api-overview/)** - Explore all available API categories - **[Error Codes Reference](/guides/getting-started/error-codes/)** - Handle errors effectively ## API Categories | Category | Description | |----------|-------------| | **[Authentication](/api/generated/o-auth-v-2/)** | OAuth token APIs (legacy v1 and current v2) | | **[Customer Management](/api/generated/registration-and-access/)** | Registration and access, profile and status, and contact info | | **[Core Banking](/api/generated/accounts/)** | Accounts, transactions, banking activities, and banking images | | **[Business Banking](/api/generated/registration/)** | Business registration, profile, entitlements, and payments | | **[Money Movement](/api/generated/recipients/)** | Recipients and transfers | | **[Alerts And Notifications](/api/generated/system-alerts/)** | System and institution alerts, templates, institution and user preferences, notification channels, and history and events | | **[Documents And Preferences](/api/generated/institution-disclosures/)** | Institution and user disclosures, and electronic statements | | **[Customer Campaigns](/api/generated/experience-groups/)** | Experience groups, jobs, promotions suite, and audience | | **[MX](/api/generated/mx-platform/)** | Platform, real time, reporting, and SSO proxy APIs | ## Base URLs | Environment | Base URL | |-------------|----------| | Sandbox | `https://api.sandbox.candescent.com` | | Stage | `https://api.stage.candescent.com` | | Production | `https://api.candescent.com` | > **Note:** This documentation primarily references the **Stage** environment for examples. ## Authentication Overview Candescent APIs use OAuth 2.0 with JWT Bearer tokens. Follow these steps: ### Step 1: Obtain Client Credentials Get your `Client ID` and `Client Secret` from the Candescent Developer Console. ### Step 2: Generate an Access Token ```bash curl -X POST 'https://api.stage.candescent.com/oauth2/v1/token' \ -H 'Authorization: Basic ' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'transactionid: ' \ -H 'institutionId: ' \ -d 'grant_type=client_credentials' ``` ### Step 3: Make Authenticated Requests Include the token in the `Authorization` header: ```bash curl 'https://api.stage.candescent.com/v1/accounts?loginId=' \ -H 'Authorization: Bearer ' \ -H 'institutionId: ' \ -H 'transactionid: ' ``` > **Tip:** Access tokens expire in ~24 hours. Implement token refresh logic for uninterrupted access. For detailed authentication flows, see the **[Authentication API Reference](/api/generated/o-auth-v-2/)**. servers: - url: 'https://{host}' variables: host: default: api.stage.candescent.com enum: - api.sandbox.candescent.com - api.stage.candescent.com - api.candescent.com description: 'API host (Sandbox, Stage, or Production)' security: - BearerAuth: [] tags: - name: OAuth V1 x-displayName: OAuth V1 description: > **Legacy OAuth V1** issues tokens for **legacy Candescent APIs only** (Send Event, Destinations, Get FI Customer, Register User). For Accounts, Alerts, Banking Images, Disclosures, Money Movement, Transactions, and other current APIs, use **OAuth V2**. > **Note:** This endpoint may be deprecated in a future release. ## End-user benefits - Secure access to legacy Candescent APIs (Send Event, Destinations, Get FI Customer, Register User). - Supports institution-level (`client_credentials`) authentication and retail customer-specific (`password`) authentication. - Access tokens expire after **30 minutes** by default (token lifetime is configured per application in the financial institution's Apigee application). ## Integration capabilities - Only the `password` and `client_credentials` grant types are supported. - **Client credentials** — Provides institution-level access without customer credentials. User context must be supplied in the request body for subsequent API calls. - **Password** — Intended for first-party retail applications with direct user authentication. The `password` grant is supported for **retail users only**; business users must use `client_credentials` or **OAuth V2**. Successful responses include `di_ficustomer` and `di_member_number`. Token access is limited to the authenticated retail customer. - Requests require HTTP Basic Authentication with the `client_id` and `client_secret` from application registration. - Request format is `application/x-www-form-urlencoded` with a `grant_type` parameter and a `Content-Type: application/x-www-form-urlencoded` header. When `grant_type=password` (retail users only), both `username` and `password` are required. - The financial institution (`di_fiid`) must be authorized for the application; unauthorized institutions return HTTP 401. - Successful responses return HTTP 200 with an **XML** payload containing the `access_token` and expiration information. ## Authentication Flows ### Step 1: Complete Authentication Clients must first complete one of the supported authentication flows to obtain an access token. #### Client Credentials Grant Server-to-server (institution-level) authentication. Supported for retail and business use cases. #### Password Grant Direct authentication using retail end-user credentials. **Retail users only** — not supported for business users. ### Step 2: Resolve `fiCustomerId` for Retail or Business Users After successful authentication, retrieve the canonical `fiCustomerId` required for subsequent API calls. 1. Call the following endpoint: GET `/v2/fis/{fiId}/fiCustomers/{fiCustomerId}?fiCustomerIdType=` using a supported customer identifier type via the `fiCustomerIdType` query parameter. Supported values. Default is `GUID`: - `GUID` - `MEMNUMBER` - `LOGINID` - `HOSTID` 2. From the response, retrieve the id field. This value represents the canonical fiCustomerId (legacy product user GUID). 3. Use this id value as the {fiCustomerId} path parameter for all subsequent API requests that require fiCustomerId in the URL path. ## Required headers | Header | Description | |--------|-------------| | `Authorization` | Basic The **OAuth V2** APIs provide the core authentication and authorization services for the **Candescent Developer Experience Portal (DevEx)**. OAuth V2 issues **OAuth 2.0 Bearer access tokens** and also supports **OpenID Connect (OIDC) ID tokens** for partner integrations. **OAuth V2 tokens** are required to access most current Candescent APIs, including **Accounts**, **Alerts**, **Banking Images**, **Disclosures**, **Money Movement**, and **Transactions**. ## End-user benefits - Provides secure, scoped access to banking data and services across Candescent APIs. - Supports institution-level access, customer-authenticated access, and **OIDC partner** integrations. - Limits exposure through token expiration and scope restrictions aligned with the registered application's Apigee configuration. - Enables session renewal using **refresh tokens** (from the **`password`** or **`authorization_code`** grants) without requiring repeated credential entry. - Supports logout and incident response by allowing access and refresh tokens to be revoked when a session must be terminated. ## Integration capabilities - **Client Credentials** — Institution-level, server-to-server access. User context can be established on downstream API calls using `hostUserId` or `loginId`. - **Password** — Customer-specific access using digital banking credentials. Returns an **`access_token`** and a **`refresh_token`**. - **Authorization Code** — **OpenID Connect (OIDC)** partner flow. Uses **Bearer** authentication in a multi-step process and exchanges the authorization code for an **`access_token`** and **`id_token`**. - **Refresh Token** — Obtain a new access token using a refresh token issued by the **`password`** or **`authorization_code`** grant. - **Token Revocation** — Invalidate access or refresh tokens to immediately terminate active sessions. - Token requests must use `application/x-www-form-urlencoded` encoding and HTTP Basic authentication with the financial institution’s Apigee application `client_id` and `client_secret` obtained during registration. - Authorization code requests must use application/x-www-form-urlencoded encoding and include a **Bearer** access token for an already authenticated user. - When using the `client_credentials`, `password`, or `authorization_code` grant types, the `institutionId` request header is required. ## Authentication flows OAuth V2 supports two categories of integration: **token endpoint grants** (server and direct sign-in) and the **authorization code flow** (OIDC partner integrations). Retail and Business user context applies only to end‑user flows—password grant and authorization code. They do not apply when grant type is `client_credentials`. ### Business context resolution (post‑authentication, only for Business users) After authentication is complete, resolve the business context before making subsequent API requests required for business-scoped APIs. 1. Retrieve associated business entities: `GET /v1/customers/?userIdType=LOGIN_ID` 2. Select the correct business entity: From the `customers` response, match the correct `memberNumber` (TIN/EIN) and capture the associated `customerId`. 3. Apply business context: Include `customerId` as the value of the `institutionCustomerId` query parameter on all business‑scoped API requests. ## OAuth 2.0 access token flows These grants use `POST /oauth2/v1/token` with HTTP Basic Authentication (`client_id` and `client_secret`). See [Create Access Token V2](/api/generated/create-access-token-v-2/). ### 1. Client credentials grant Provides server‑to‑server, institution‑level authentication. **Important considerations** - No end‑user authentication occurs - User context must be supplied on subsequent API calls: - **Retail**: `hostUserId` or `loginId` - **Business**: `loginId` - Business context resolution is required before calling business‑scoped APIs ### 2. Password grant Authenticates an end user directly using credentials. **Important considerations** - Supports both Retail and Business users - Issues a refresh token in addition to an access token - Business context resolution is required before calling business‑scoped APIs ### 3. Token refresh Renews an access token using a refresh token. **Important considerations** - Available only for tokens issued via the **password grant** - Does not require re‑authentication with user credentials ### 4. Token revocation Invalidates an existing access or refresh token via `POST /oauth2/v1/revoke`. See [Revoke Access Token V2](/api/generated/revoke-access-token-v-2/). **Important considerations** - Immediately terminates the associated session - Prevents further API access using the revoked token ## OpenID Connect (OIDC) authorization code flow This flow is used for **OpenID Connect (OIDC)** partner integrations. It is a distinct, multi-step flow and is **not** a variant of the **password grant**. Authorization-code endpoints use **Bearer** authentication with an access token for an already authenticated user; the token exchange step uses **HTTP Basic** authentication. **Prerequisites** - The end user is authenticated in digital banking - A **Bearer** access token is available for authorization-code API calls - The client application is registered with the **`authorization_code`** grant type **Steps** 1. **Authorize client** (recommended) — [Authorize Client](/api/generated/authorize-client-v-1/) - Returns approved scopes and authorization policy flags (**MFA**, consent, device registration) 2. **Generate authorization code** — [Generate Authorization Code](/api/generated/generate-authorization-code-v-1/) - Standard OAuth parameters include `client_id`, `scopes`, `username`, and `institution_user_id` 3. **Exchange code for tokens** — `POST /oauth2/v1/token` with `grant_type=authorization_code` - Returns an **`access_token`** and an OIDC **`id_token`** **Important considerations** - API and resource scopes are specified in **`scopes`**; OpenID Connect scopes (`openid`, `profile`, `offline_access`) are specified in **`requested_scopes`** - The **`client_id`** used in the authorization-code request must differ from the client associated with the Bearer token; **self-authorization is not permitted** - Business context must be resolved before invoking business-scoped APIs ## Required headers **OAuth V2** | Header | Description | |--------|-------------| | `Authorization` | Basic **Registration and Access** APIs cover **online banking registration**, self-service **password reset** (one-time password to a chosen contact method) and administrative **user unlock**. ## End-user benefits - **Register** for digital banking through partner apps with validation aligned to Candescent enrollment. - **Reset password** using a one-time password sent to **SMS** or **voice** (after listing contact methods — see [Contact Info](/api/generated/contact-info/)). - **Unlock** a locked user without forcing a full password-reset flow, when allowed. ## Integration capabilities - Register new customers with comprehensive validation and error handling - Implement self-service password reset with one-time password delivery - Support administrative user unlock functionality ## Customer registration **Registration** APIs provide third-party application developers with access to the same registration process used in Candescent Digital Banking. **No scope required.** **Common use cases:** - Online banking vendors registering users for additional offerings after account opening - Mobile banking vendors providing products to FIs using Candescent Digital Banking - Application developers extending Candescent Digital Banking functionality **Required personal data:** - First name, last name, middle name (optional) - Social Security Number (9 digits) - Date of birth (yyyy-mm-dd format) - Address: street, city, state, zip code, country - Phone number (10 digits) - Email address - Mother's maiden name **Username policy:** - Default: 8-20 characters (configurable: min 6, max 20) - Must be alphanumerical (contains at least one letter and one number) - Allowed special characters: `@$*_-=.!~` - No spaces allowed **Password policy:** - Length: 6-32 characters (configurable within limits) - Must contain at least two characters types (letters, numbers, special) characters - No spaces allowed - Cannot be a substring of the username ## Reset password (Self-Service) **Reset Password** APIs enable customers to reset their password using a one-time passcode sent to their preferred contact method. - Verify that a customer exists at a specified financial institution - Provide a list of contact methods (SMS, Voice, Email) for the customer - Send a one-time passcode to the customer's desired contact method **Reset password flow:** 1. **Retrieve Contact Methods**: `GET /v1/customers/{customerId}/contactMethods` - Returns available destinations (SMS, voice, email) with masked contact info - See endpoint documentation for response example 2. **Customer Selects Destination**: Choose where to receive the one-time password 3. **Initiate Reset**: `PUT /v1/customers/{customerId}:resetPassword` - Send `destinationId` in the request body - One-time password is sent to the selected contact method ## Scopes **Reset Password and Unlock User** | Scope | Description | |-------|-------------| | `institution-users:read` | List contact methods for the customer | | `institution-users:write` | Trigger OTP delivery for password reset | ## Error codes **Registration** | Code | Message | HTTP Status Code | |------|---------|-------------| | 20006 | Invalid input (member number, channel `TPV_API`, name length, SSN, etc.) | 400 | | 26201 | LoginID is already taken | 400 | | 26214 | Too many destinations passed | 400 | | 26330 | Registration already in progress (duplicate request) | 409 | | 26331 | User is already registered | 409 | | 26340 | Could not create record in database | 400 | | 220001 | SSN is not 9 digits | 400 | | 220002 | First name exceeds 39 characters | 400 | | 220003 | Last name exceeds 39 characters | 400 | | 220005 | Middle name exceeds 39 characters | 400 | | 220006 | Email exceeds 64 characters | 400 | | 220007 | Postal code not found | 400 | | 220008 | City not found | 400 | | 220009 | State not found or invalid length (US: 2 chars) | 400 | | 220010 | Street/Address1 missing or exceeds 128 characters | 400 | | 220011 | Country not found | 400 | | 220012 | Mother's maiden name missing or exceeds 128 characters | 400 | | 220013 | Invalid date of birth format | 400 | | 220014 | Phone number is missing | 400 | | 220015 | Invalid LoginID (6–256 chars, allowed `@$*_-=.!~`, no spaces) | 400 | | 220016 | LoginID cannot match member number | 400 | | 220018 | Invalid password | 400 | | 220019 | Login must be within preconfigured range | 400 | **Reset password and unlock user** | Code | Message | HTTP Status Code | |------|---------|-------------| | UXU_10001 | Invalid JWT token | 400 | | UXU_10002 | Required role not present in JWT token | 403 | | UXU_10003 | JWT token has expired | 400 | | UXU_10004 | JWT token does not contain institution id | 400 | | UXU_10005 | Required Authorization header is missing | 400 | | UXU_10006 | Required Correlation Id header is missing | 400 | | UXU_10007 | Correlation Id is not a GUID | 400 | | UXU_10008 | Invalid IP address in the header | 400 | | UXU_10009 | Invalid Authorization in the header | 400 | | UXU_10010 | JWT token does not contain institution customers id | 400 | | UXU_10011 | JWT token institution customers id not matching path param | 400 | | UXU_10012 | Invalid path param | 400 | | UXU_10013 | Invalid path | 400 | | UXU_10014 | Invalid query param | 400 | | UXU_13001 | Combined firstname, middleName, lastname exceeds 39 chars | 400 | | UXU_13002 | Invalid user password | 400 | | UXU_13003 | Login Id is already taken | 400 | | UXU_13004 | You are already a registered user | 400 | | UXU_13005 | Invalid Date Format | 400 | | UXU_13006 | Soft failure, contact institution | 400 | | UXU_13007 | Login id and Member number can't be the same | 400 | | UXU_13008 | Member number/username is already registered | 409 | | UXU_13009 | Error while registering user | 400 | | UXU_30001 | Error interacting with the service | 503 | | UXU_30002 | Error interacting with the external service | 503 | | UXU_88888 | No entitled customers found | 404 | | UXU_88889 | Contact method Id not found | 400 | | UXU_88890 | Institution customer id not found | 400 | | UXU_88891 | Host phone postal address not found | 400 | | UXU_99998 | Internal server error | 500 | | UXU_99999 | Cannot handle this request — check URL, body and parameters | 400 | ## Endpoints - name: Profile And Status x-displayName: Profile And Status description: > **Profile and Status** APIs return **user profile information** and **user status**. ## End-user benefits - View **profile** context: name, demographics, login identifiers, contact methods, addresses, entitled relationships, user products, and channel login data. - Understand **access state**: active, locked, on hold, registration/approval, failed logins/resets, sub-users. ## Integration capabilities - Access core user profile data to support identity verification and entitlement validation. - Retrieve real-time user status to enable eligibility checks, compliance, and consistent experiences. ## Scopes **Institution user** | Scope | Description | |-------|-------------| | `institution-users:read` | Read institution users | | `institution-users-billpay:read` | Read institution users and their bill pay credentials | | `institution-users:read_pii` | Read institution users and their personally identifiable information (PII). | **User status and customer profile** | Scope | Description | |-------|-------------| | `institution-users:read` | Read institution users | ## Error codes **FI customer** | Code | Message | HTTP Status Code | |------|---------|-------------| | USER_ERROR | Bad Request - Invalid fiCustomerIdType | 400 | | APP_ERROR | Unauthorized Access | 401 | | APP_ERROR | FICustomer does not exist | 404 | | SYSTEM_ERROR | Internal server error | 500 | | SYSTEM_ERROR | Circuit breaker open or throttle limit reached | 503 | **Institution user and user status** | Code | Message | HTTP Status Code | |------|---------|-------------| | ISR_10000 | InstitutionId is invalid or its incorrectly configured | 400 | | ISR_10001 | InstitutionUser not found | 400, 404 | | ISR_10002 | Primary InstitutionUser not found | 400 | | ISR_10009 | Error processing OData expression | 400, 500 | | ISR_10010 | The CIF number is required, but was not found | 500 | | ISR_11001 | Full authentication was not provided in the request | 401 | | ISR_11002 | The authentication token that was sent in the request is invalid | 401 | | ISR_11003 | The authentication provided does not authorize this request | 403 | | ISR_11004 | Request should only contain printable ASCII characters | 400 | | ISR_11005 | Request is missing a transactionId header | 400 | | ISR_11006 | Request transactionId header is too long | 400 | | ISR_11007 | Invalid path param | 400 | | ISR_11008 | Invalid query param | 400 | | ISR_11009 | Request header callingAppId is too long | 400 | | ISR_23001 | Error interacting with FSG | 500 | | ISR_23002 | Error interacting with BBES | 500 | | ISR_23003 | Error interacting with BBK | 500 | | ISR_23004 | Error interacting with host | 500 | | ISR_23007 | Missing encryption key for this FI | 500 | | ISR_88888 | Internal validation error | 500 | | ISR_99999 | Internal server error | 500 | **Customer profile** | Code | Message | HTTP Status Code | |------|---------|-------------| | UXU_10001 | Invalid JWT token | 400 | | UXU_10002 | Required role not present in JWT token | 403 | | UXU_10003 | JWT token has expired | 400 | | UXU_10004 | JWT token does not contain institution id | 400 | | UXU_10005 | Required Authorization header is missing | 400 | | UXU_10006 | Required Correlation Id header is missing | 400 | | UXU_10007 | Correlation Id is not a GUID | 400 | | UXU_10008 | Invalid IP address in the header | 400 | | UXU_10009 | Invalid Authorization in the header | 400 | | UXU_10010 | JWT token does not contain institution customers id | 400 | | UXU_10011 | JWT token institution customers id not matching path param | 400 | | UXU_10012 | Invalid path param | 400 | | UXU_10013 | Invalid path | 400 | | UXU_10014 | Invalid query param | 400 | | UXU_30001 | Error interacting with the service | 503 | | UXU_30002 | Error interacting with the external service | 503 | | UXU_88888 | No entitled customers found | 404 | | UXU_88890 | Institution customer id not found | 400 | | UXU_99998 | Internal server error | 500 | | UXU_99999 | Cannot handle this request — check URL, body and parameters | 400 | ## Endpoints - name: Contact Info x-displayName: Contact Info description: > **Contact Info** APIs expose and update customer contact data (phone, email, address) and notifications (SMS, voice, email) for a financial institution customer. ## End-user benefits - Keep phone, email, and address **up to date** for digital banking profile and communications. - Viewing **contact destinations** (SMS, voice, email) for verification and notifications. - Support self-service password reset flows: integrators first list contact methods, then the customer selects **where to receive an one-time password**. ## Integration capabilities - Manage customer contact data and notification (SMS, voice, email) - Support self-service password reset flows - Enable integration with automation and admin tools ## Scopes | Scope | Description | |-------|-------------| | `institution-users:read` | Get contact methods for a customer (e.g. before password reset) | | `institution-users:write` | Trigger one-time password / reset where applicable | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes | Code | Message | HTTP Status Code | |------|---------|-------------| | UXU_10001 | Invalid JWT token | 400 | | UXU_10002 | Required role not present in JWT token | 403 | | UXU_10003 | JWT token has expired | 400 | | UXU_10004 | JWT token does not contain institution id | 400 | | UXU_10005 | Required Authorization header is missing | 400 | | UXU_10006 | Required Correlation Id header is missing | 400 | | UXU_10007 | Correlation Id is not a GUID | 400 | | UXU_10008 | Invalid IP address in the header | 400 | | UXU_10009 | Invalid Authorization in the header | 400 | | UXU_10010 | JWT token does not contain institution customers id | 400 | | UXU_10011 | JWT token institution customers id not matching path param | 400 | | UXU_10012 | Invalid path param | 400 | | UXU_10013 | Invalid path | 400 | | UXU_10014 | Invalid query param | 400 | | UXU_30001 | Error interacting with the service | 503 | | UXU_30002 | Error interacting with the external service | 503 | | UXU_88888 | No entitled customers found | 404 | | UXU_88889 | Contact method Id not found | 400 | | UXU_88890 | Institution customer id not found | 400 | | UXU_88891 | Host phone postal address not found | 400 | | UXU_99998 | Internal server error | 500 | | UXU_99999 | Cannot handle this request — check URL, body and parameters | 400 | ## Endpoints - name: Accounts x-displayName: Accounts description: > The Accounts API provides read-only access to customer account information, representing the contractual relationship between a customer and the financial institution (for example, checking, savings, loans, and lines of credit). The API supports listing and retrieving entitled accounts and, for retail use cases, optional aggregation with transaction data. This API is commonly used to power account summary views, entitlement checks, transfers, statements, and onboarding flows. ## End-user benefits - View real-time account status, balances, and basic account details. - Retrieve the list of accounts a user is entitled to use across banking workflows. - During registration or onboarding (retail), fetch accounts with embedded transaction history in a single request. ## Integration capabilities - Retrieve accounts entitled to the authenticated user, with optional filtering and response shaping. - Joint or cross-member accounts are included by default and can be controlled through request options. - Retrieve accounts with embedded transaction history in a single call for retail onboarding and account summary experiences. - A legacy OAuth V1 endpoint remains available for backward compatibility with existing integrations. ### List Accounts and Retrieve Account by ID **List Accounts** — *When to use:* Account summaries, dashboards, and workflows that need multiple accounts (for example, transfer source/destination lists). - *Best for:* Retrieve all accounts a user is entitled to see, with optional filtering and support for joint or business accounts. **Retrieve Account by ID** - *When to use:* Account detail views when you already have an accountId from a previous call or stored reference. - *Best for:* Retrieve the latest details for a single account without reloading the full account list. - Both endpoints support the same response options for shaping account data and handling joint accounts. - When using client credentials authentication, provide either `hostUserId` or `loginId` (mutually exclusive). - Use `institutionCustomerId` to scope results to a specific business location (see the [Get Customer Profile](/api/generated/get-customer-information/) API for more details). This is specific to **Business Banking** users. #### Scopes | Scope | Description | |-------|-------------| | `accounts:read` | Read accounts | #### Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | #### Error codes (ACC_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | ACC_00002 | Given password is invalid | 401 | | ACC_00003 | The account is invalid for summary display | 500 | | ACC_00004 | The account is hidden | 500 | | ACC_00005 | Error processing filter expression | 400 | | ACC_00006 | 'From' Account restricted for transfer | 500 | | ACC_00007 | 'To' Account restricted for transfer | 500 | | ACC_00008 | Invalid 'From' account status for transfer | 500 | | ACC_00009 | Invalid 'To' account status for transfer | 500 | | ACC_00010 | 'From' Account has zero or negative balance | 500 | | ACC_00011 | Validation Error | 400 | | ACC_00012 | Data not found | 404 | | ACC_00014 | The CIF number is required, but was not found | 500 | | ACC_00015 | InstitutionId provided is invalid or blank | 400 | | ACC_00016 | InstitutionUserType provided is invalid or blank | 400 | | ACC_00017 | InstitutionCustomerId provided is invalid or blank | 400 | | ACC_00018 | InstitutionId from Query param and JWT do not match | 400 | | ACC_00019 | InstitutionUserType from Query param and JWT do not match | 400 | | ACC_00020 | InstitutionCustomerId from Query param and JWT do not match | 400 | | ACC_00021 | UserId provided is invalid or blank | 400 | | ACC_00022 | UserId from Query param and JWT do not match | 400 | | ACC_00023 | InstitutionUserId provided is invalid or blank | 400 | | ACC_00024 | InstitutionUserId from Query param and JWT do not match | 400 | | ACC_00025 | InstitutionUserRole provided is invalid or blank | 400 | | ACC_00026 | InstitutionUserRole from Query param and JWT do not match | 400 | | ACC_00101 | User not found | 404 | | ACC_00113 | Update nickname feature is not enabled | 403 | | ACC_00114 | Nickname field should not be empty | 400 | | ACC_00115 | Nick name update is disabled for Joint Accounts | 403 | | ACC_00116 | NickName length in request is greater than configured maximum length or Database column length | 400 | | ACC_00117 | Host update is done but exception occurred while updating the database | 500 | | ACC_00118 | Host update is done but exception occurred while inserting record to database | 500 | | ACC_00119 | Hide/show account feature is not enabled | 403 | | ACC_00201 | Account type ATYP not present in the account data | 500 | | ACC_00202 | Format error in generating formatted account id with mask configuration | 500 | | ACC_00203 | No USR value present in the Host Data | 500 | | ACC_00204 | ACHTYP is configuared as BLANK in FI config file | 500 | | ACC_00205 | ANUM information not provided by FI HOST | 500 | | ACC_00206 | No formatted account was produced by configuration | 500 | | ACC_00207 | Requested account type not found in FI configuration validAccountTypes | 500 | | ACC_00208 | MICR value not provided by FI host | 500 | | ACC_00209 | CIID Format configuration error | 500 | | ACC_00210 | EnableFormatter is not true for ACHTYPE CIID for FI | 500 | | ACC_00211 | Valid account types not set for Institution | 500 | | ACC_00300 | Utility DB is not available | 500 | | ACC_00408 | BB User is missing User Id in the request | 400 | | ACC_00410 | A location is required for BB users | 400 | | ACC_00500 | Requested service or feature is switched off | 500 | | ACC_00501 | Couchbase System is unavailable | 500 | | ACC_00600 | ServiceType parameter is invalid. Valid values are IB/BB | 400 | | ACC_00601 | Invalid JWT token | 401 | | ACC_00602 | Unauthorized access | 401 or 403 | | ACC_00702 | Subuser Id is empty | 400 | | ACC_00704 | InstitutionId is invalid or its incorrectly configured | 500 | | ACC_00705 | Member number is not valid. | 500 | | ACC_88888 | Internal validation error. | 500 | | ACC_99988 | Server can only handle JSON request. Other media types are not supported | 415 | | ACC_99989 | RequestBody size exceeds limit. | 400 | | ACC_99990 | Client error | 400 | | ACC_99991 | Request callingAppId header is too long | 400 | | ACC_99992 | One or more request query params are invalid or not provided. | 400 | | ACC_99993 | Server cannot handle this request | 500 | | ACC_99994 | Invalid query param | 400 | | ACC_99995 | Request should only contain printable ASCII characters | 400 | | ACC_99996 | Request header is too long | 500 | | ACC_99997 | Request transactionId header is too long | 400 | | ACC_99998 | Request is missing a transactionId header | 400 | | ACC_99999 | Error in Accounts Service | 500 | ### List Accounts (Legacy) Legacy OAuth V1 endpoint that lists accounts for existing integrations. Returns account data in XML format for a specified financial institution and customer, with institution display and visibility rules applied. Supports export‑formatted account numbers for financial software and select business‑banking validation behaviors, when enabled.Intended for existing OAuth V1 integrations that rely on legacy identifiers and credentials. New integrations should use [List Accounts](/api/generated/list-accounts-v-1/). #### Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V1) | | `di_tid` | UUID used to trace and correlate requests across services for debugging and logging. | #### Error codes | Code | Type | Message | HTTP Status Code | |------------|------------|---------------|------------------| | 10001 | SYSTEM_ERROR | Internal System Error. | 500 | | 10002 | SYSTEM_ERROR | Connection Error. | 500 | | 10003 | SYSTEM_ERROR | Configuration Error. | 500 | | 10006 | SYSTEM_ERROR | Output validation error occurred | 500 | | 20009 | APP_ERROR | PrincipalEndUser:Data not found. | 404 | | 25002 | USER_ERROR | User Id or password is invalid | 500 | | 25099 | USER_ERROR | Required HTTP Headers were not found | 400 | | 25134 | SYSTEM_ERROR | Alt_mem_number required but not found in database | 500 | | 25401 | APP_ERROR | Account type ATYP not present in the account data. | 500 | | 25502 | APP_ERROR | Account formatter error | 500 | | 25503 | APP_ERROR | No USR value present in the Host Data | 500 | | 25504 | APP_ERROR | ACHTYP is configuared as BLANK in FI config file | 500 | | 25505 | APP_ERROR | ANUM information not provided by FI host | 500 | | 25506 | APP_ERROR | No formatted account was produced by configuration | 500 | | 25507 | APP_ERROR | Requested account type not found in FI configuration validAccountTypes | 500 | | 25518 | APP_ERROR | MICR value not provided by FI host | 500 | | 25519 | APP_ERROR | CIID Format configuration error | 500 | | 25520 | APP_ERROR | EnableFormatter is not true for ACHTYPE CIID in Fi config | 500 | | 25555 | APP_ERROR | Requested service or feature is switched off | 500 | | 25612 | APP_ERROR | Response from entitlements service is not successful | 500 | | 25615 | SYSTEM_ERROR | Entitlement Service is temporarily unavailable | 500 | | 25618 | USER_ERROR | Subuser auth ID is empty | 500 | | 25619 | APP_ERROR | Mismatch of the data between the requested resource and response returning | 500 | | 25665 | APP_ERROR | Extern format is not enabled/Invalid extern format | 500 | | 25673 | APP_ERROR | HTTP Response from BB Entitlements Service is not successful | 500 | | 25674 | SYSTEM_ERROR | BB Entitlement Service is temporarily unavailable | 500 | | 25679 | APP_ERROR | The user is not entitled for view account(s) | 500 | | 25690 | USER_ERROR | BB User is missing Auth ID Request Header | 500 | | 25693 | APP_ERROR | Invalid User Type Header for Business Banking User | 500 | | 25694 | APP_ERROR | Invalid User Type Header for IB User | 500 | | 25722 | SYSTEM_ERROR | HTTP Response from Business Customer Service is not successful | 500 | | 25723 | SYSTEM_ERROR | Business Customer Service is temporarily unavailable | 500 | | 25736 / 25737 | USER_ERROR | Invalid member number | 500 | | 28001 | SYSTEM_ERROR | Circuit Breaker HardTrip configuration set to true in FI config file | 503 | | 28002 | SYSTEM_ERROR | Circuit Breaker Status is Open | 503 | | 28003 | SYSTEM_ERROR | Incoming requests count exceeded configured Semaphore count | 503 | | 50000 | SYSTEM_ERROR | Internal error in downstream | 500 | | Host Code | - | Host Message | 500 | ### Retrieve Customer Accounts with Transactions Retail aggregation endpoint that returns customer accounts with embedded transaction history in a single response. Designed for onboarding and registration flows that need accounts and recent transactions in one call. Returns account details (balances, status, ownership) with nested transactions per account. Retail only; not supported for Business Banking. #### Scopes | Scope | Description | |-------|-------------| | `accounts:read` | Read accounts | | `transactions:read` | Read transactions | #### Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | #### Error codes (UXU_*) | Code | Message | HTTP Status Code | |------|---------|------------------| | UXU_10002 | Required role not present in JWT token | 403 | | UXU_10003 | JWT token has expired | 400 | | UXU_10004 | JWT token is invalid, does not contain institution id | 400 | | UXU_10005 | Required Authorization header is missing | 400 | | UXU_10006 | Required Correlation Id header is missing | 400 | | UXU_10007 | Correlation Id is not a GUID | 400 | | UXU_10008 | Invalid IP address in the header | 400 | | UXU_10009 | Invalid Authorization in the header | 400 | | UXU_10010 | JWT token is invalid, does not contain institution customers id | 400 | | UXU_10011 | JWT token institution customers id is not matching customer id path param | 400 | | UXU_30001 | Error interacting with the service | 500 or 503 | | UXU_30002 | Error interacting with the external service | 500 or 503 | | UXU_88888 | No entitled customers found | 404 | ## Endpoints - name: Transactions x-displayName: Transactions description: > The Transactions API provides read-only access to account transaction history for a specified account, including deposits, withdrawals, transfers, payments, fees, and adjustments. The API supports retrieval of posted, pending, and optionally future-dated transactions using date-based filters and standard pagination controls. Transaction responses may include optional image metadata, enabling downstream retrieval of related banking images when supported by the institution. ## End-user benefits - View posted, pending, and future-dated transaction activity for an account. - Filter transaction history by date range for statements, reporting, and account history views. - Use transaction-level image metadata (`imageIdentifier`, `imageType`) to retrieve associated banking images when available. ## Integration capabilities - List transactions (GET /v1/transactions) — Requires `accountId`; supports ISO 8601 `startDate` and `endDate` filters (FI-configured defaults apply when omitted). - Set `retrieveFutureTransactions` to include future-dated transactions (may override endDate based on institution configuration). - Support pagination and filtering using `$skip`, `$top`, `$filter`, and optional `isCreditTransaction`; include `additionalFields` to return institution time zone data. - When using client credentials authentication, provide either `hostUserId` or `loginId` (mutually exclusive). - Use `institutionCustomerId` to scope results to a specific business location (see the [Get Customer Profile](/api/generated/get-customer-information/) API for more details). This is specific to **Business Banking** users. ## Scopes | Scope | Description | |-------|-------------| | `transactions:read` | Read transactions | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (TXN_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | TXN_10001 | The date(s) provided could not be parsed, or represented an invalid range. | 400 | | TXN_10002 | Request is missing a transactionId header | 400 | | TXN_10003 | Request should only contain printable ASCII characters | 400 | | TXN_10004 | Request transactionId header is too long | 400 | | TXN_10005 | Invalid query param | 400 | | TXN_10006 | A valid institution customer id is required for business users. | 400 | | TXN_10007 | A valid account id is required. | 400 | | TXN_10008 | Request header is too long | 500 | | TXN_10009 | Request callingAppId header is too long | 400 | | TXN_10010 | One or more query params are invalid or blank | 400 | | TXN_10011 | The authorization for this request does not allow for one or more attributes to be passed as parameters | 400 | | TXN_11001 | Full authentication was not provided in the request. | 401 | | TXN_11002 | The authentication token that was sent in the request is invalid. | 401 | | TXN_11003 | The authentication provided does not authorize this request. | 403 | | TXN_11004 | Unauthorized access | 403 | | TXN_20001 | Transaction history is not enabled for this account. | 400 | | TXN_20002 | This user is not entitled to see transaction history for this account. | 400 | | TXN_20003 | Transactions for this account are available on an external site. | 400 | | TXN_20004 | The CIF number is required, but was not found | 400 | | TXN_20005 | Error processing filter expression | 400 | | TXN_20006 | Error processing pagination expression | 400 | | TXN_88888 | Internal validation error. | 500 | | TXN_90000 | Server cannot handle this request | 400, 404, or 500 | | TXN_99988 | Server can only handle JSON request. Other media types are not supported | 415 | | TXN_99990 | Client error | 400 | | TXN_99999 | Server error. | 500 | ## Endpoints - name: Banking Activities x-displayName: Banking Activities description: > The Banking Activities API provides search access to institution-scoped activity records, including authentication events, MFA actions, payment activity, audit events, and related operational activity. Results are returned in batches with pagination and flexible filtering across users, events, and request-context attributes. ## End-user benefits - Retrieve activity events within a required `startTime` and `endTime` window (up to a 90‑day lookback). - Page through large result sets using `pageSize` and `nextPageToken`. - Scope activity results to retail or business users, companies, event identifiers, or attribute-level conditions without accessing raw log data. ## Integration capabilities - Search activities using `SearchCriteria` request body; requires ISO 8601 `startTime` and `endTime`; `startTime` must be strictly earlier than `endTime`. - Filter results by `eventIds`, `eventType` (user or system), `userType` (retail or business), `userId` / `userIdType`, and `companyId`. - Apply advanced `additionalFilters` with AND/OR groupings across request-context attributes. - Reduce response payloads with `requestedAttributes` and continue queries using an opaque `nextPageToken`. - Returns matching `bankingActivities` records (gzip-encoded); responds with HTTP `204` when no records match. ## Scopes | Scope | Description | |-------|-------------| | `banking-activities:read` | Read banking activities | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BAS_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BAS_10001 | The given start date must be earlier than end Date. | 400 | | BAS_10002 | The given start date must be within last three months. | 400 | | BAS_10003 | BigTable connection failed. | 500 | | BAS_10004 | BigTable rows could not be read. | 500 | | BAS_10005 | Invalid arguments passed in the request; Failed to read HTTP message | 400 | | BAS_10006 | Http Message not readable | 400 | | BAS_10007 | NOT EQUAL and LIKE criterias not supported at this time. | 400 | | BAS_10008 | Additional filters condition and sub filter condition cannot be the same. | 400 | | BAS_10009 | Invalid UserType requested. | 400 | | BAS_10010 | Invalid UserIdType requested. | 400 | | BAS_10011 | UserIdType must be present if userId is given. | 400 | | BAS_10012 | Invalid EventType requested. | 400 | | BAS_10021 | BigTable Query is invalid. | 400 | | BAS_10022 | Row key is unexpectedly empty. | 400 | | BAS_10101 | Full authentication was not provided in the request. | 401 or 403 | | BAS_10102 | Authentication token sent in the request is invalid. | 401 | | BAS_10103 | The authentication provided does not authorize this request. | 400 | | BAS_10104 | The jwt token is invalid. | 401 | | BAS_10105 | Unauthorized access. | 400 | | BAS_10201 | Request should only contain printable ASCII characters | 400 | | BAS_10202 | transactionId header is too long | 400 | | BAS_10203 | One or more header values are invalid | 400 | | BAS_10204 | Invalid Request body | 400 | | BAS_10205 | One or more header values are too long | 400 | | BAS_10206 | nextPageToken is invalid | 400 | | BAS_10207 | Requested method type is invalid | 400 | | BAS_99999 | Internal server error | 500 | ## Endpoints - name: Images x-displayName: Images description: > The Banking Images API provides read-only access to host-stored banking document images, including checks, deposit slips, deposit checks, statements, credit card statements, and other supported documents. Consumers can list available images and retrieve full image content by ID using filters such as account, imageType, and date ranges. The API supports both transaction-based and statement-based image retrieval and returns content in type-specific formats (`TIFF` for transaction images; `PDF` for statements and documents). ## End-user benefits - View check and deposit images associated with posted transactions. - Access deposit slip and deposit check images for verification and audit workflows. - Retrieve online statements and documents, with optional preview support. ## Integration capabilities - List image metadata and available images; retrieve by `bankingImageId` to obtain full image content. - Transaction-based `imageType` values (`CHECK`, `DEPOSIT_SLIP`, `DEPOSIT_CHECK`) require `transactionDate`; `DEPOSIT_SLIP` and `DEPOSIT_CHECK` also require `imageIdentifier`. - Statement-based `imageType` values (`STATEMENT`, `CC_STATEMENT`, `DOCUMENT`) require `statementStartDate` and `statementEndDate`; `statementPreview` may be enabled to return preview data in list responses. - When using client credentials authentication, provide either `hostUserId` or `loginId` (mutually exclusive). - Use `institutionCustomerId` to scope results to a specific business location (see the [Get Customer Profile](/api/generated/get-customer-information/) API for more details). This is specific to **Business Banking** users. ## Scopes | Scope | Description | |-------|-------------| | `images:read` | Read images | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BIS_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BIS_00001 | Could not retrieve check image. Date out of range or expired. | 400 | | BIS_00002 | Could not retrieve requested image(s). Date out of range or expired. | 400 | | BIS_00003 | The date provided could not be parsed or represented an invalid date. | 400 | | BIS_00004 | Image type cannot be null or empty. | 400 | | BIS_00005 | Image type is not supported. | 400 | | BIS_00006 | Account type is not supported for check image. | 400 | | BIS_00007 | Account types configured for requested image(s) at FI level are invalid. | 400 | | BIS_00008 | Transaction types configured for requested image(s) at FI level are invalid. | 400 | | BIS_00009 | Transaction image number is invalid or contains non-numeric characters. | 400 | | BIS_00010 | Transaction date cannot be null for requested image(s). | 400 | | BIS_00011 | Account id cannot be null or empty. | 400 | | BIS_00012 | Card Number cannot be null or empty. | 400 | | BIS_00012 | Image identifier cannot be null for requested image(s). | 400 | | BIS_00013 | Request is missing a transactionId header | 400 | | BIS_00014 | Request should only contain printable ASCII characters. | 400 | | BIS_00015 | One of the query parameter length is greater than max length. | 400 | | BIS_00016 | Request transactionId header is too long. | 400 | | BIS_00017 | Invalid query param. | 400 | | BIS_00018 | Start date or end date cannot be null for statement images. | 400 | | BIS_00019 | The start date cannot be after the end date. | 400 | | BIS_00020 | A location is required for BB users. | 400 | | BIS_00021 | BB user is missing user id in the request. | 400 | | BIS_00022 | The date cannot be null or empty. | 400 | | BIS_00023 | Request header is too long. | 400 | | BIS_00024 | Request callingAppId header is too long. | 400 | | BIS_00025 | One or more query params are invalid or blank | 400 | | BIS_00026 | The authorization for this request does not allow for one or more attributes to be passed as parameters | 400 | | BIS_10000 | Client error. Banking images request could not be completed. | 400 | | BIS_10001 | Full authentication was not provided in the request. | 401 | | BIS_10002 | The authentication token that was sent in the request is invalid. | 401 | | BIS_10003 | The authentication provided does not authorize this request. | 403 | | BIS_10004 | InstitutionCustomers not available in JWT. | 403 | | BIS_10005 | Unauthorized access. | 401 or 403 | | BIS_20001 | Check image retrieval was not successful. | 500 | | BIS_20002 | No statements available for users | 200 (warning) | | BIS_20007 | Error interacting with FICDS Statement Image service. | 200 (warning) | | BIS_20008 | No transaction found for the requested image. | 404 | | BIS_20009 | Account in the request not available | 404 | | BIS_20022 | User not found. | 404 | | BIS_20023 | HTTP Response from BB Service is not successful | 500 | | BIS_30000 | Check image feature is not enabled for this FI. | 400 | | BIS_30001 | Image retrieval is turned off for this account. | 400 | | BIS_30002 | Image(s) retrieval is turned off for this FI. | 400 | | BIS_30004 | Data not found. | 404 | | BIS_30005 | User is not entitled to view online statements. | 400 or 401 | | BIS_30006 | Entitlements or account response is blank. | 400 | | BIS_88888 | Internal validation error. | 500 | | BIS_90000 | Server cannot handle this request. | 500 | | BIS_99988 | Server can only handle JSON request. Other media types are not supported | 415 | | BIS_99999 | Server error. Banking images request could not be completed. | 500 | ## Endpoints - name: Registration x-displayName: Registration description: > **Registration APIs** support business customer onboarding by allowing institutions to load registration configuration, submit new registrations, and retrieve submissions using a 16‑character confirmation number or a system‑generated registration ID. ## End-user benefits - Streamlined business onboarding with a returned confirmation number. - Registration forms driven by institution-specific **online features** and **additional services** lists. - Track submissions using confirmation number or registration ID. ## Integration capabilities - Retrieve institution-specific settings to dynamically build registration experiences. - Submit complete business registration data and receive a 16‑character alphanumeric confirmation number for external tracking. - Retrieve registrations using either the confirmation number or the registration ID to support back‑office workflows. - Use well-defined identifier formats for client-side validation and efficient lookups. ## Scopes | Scope | Description | |-------|-------------| | `business-registrations:read` | Read registration configuration and registrations | | `business-registrations:write` | Create business registrations | | `institution-users:read` | Read user details | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BBS_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BBS-40095 | Invalid tinNumber | 400 | | BBS-40095 | Invalid confirmationNumber | 400 | | BBS-40095 | Invalid institutionId | 400 | | BBS-40150 | Invalid JWT | 401 | | BBS-40151 | Invalid roles or entitlements | 403 | | BBS-40153 | Unexpected server error | 500 | | BBS-40154 | Business registration not found | 404 | ## Endpoints - name: Profile x-displayName: Profile description: > **Profile APIs** provide read access to **business profile data** for an institution, including company details, primary contact and address information, and optional tax identifiers (TINs) and associated users. These APIs are commonly used to enrich administrative, servicing, and support experiences. ## End-user benefits - Access trusted business identity and contact information from a single source - Improve admin, servicing, and support workflows with consistent profile data - Optionally include tax and user details to support broader business context needs ## Integration capabilities - Retrieve business details using a supported identifier, such as a business ID or login ID, depending on the search context. - Control response payloads by optionally including tax identifiers (TINs) and associated users to meet different use-case needs. - Responses include core business identity, registration context, and status fields required for downstream processing and decisioning. ## Scopes | Scope | Description | |-------|-------------| | `business-profile:read` | Read business details | | `institution-users:read` | Read user details | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BBS_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BBS-40095 | Invalid tinNumber | 400 | | BBS-40095 | Invalid searchType | 400 | | BBS-40095 | Invalid institutionId | 400 | | BBS-40147 | Business details not found | 400 | | BBS-40150 | Invalid JWT | 401 | | BBS-40151 | Invalid roles or entitlements | 403 | | BBS-40153 | Unexpected server error | 500 | ## Endpoints - name: Entitlements x-displayName: Entitlements description: > **Entitlement APIs** provide **Business Banking** applications with secure access to **business**- and **user**-level **entitlements**, **transaction limits**, **account permissions**, and **ACH SEC codes** across supported **banking features**. ## End-user benefits - Business entitlements management. - User entitlements management. ## Integration capabilities - Retrieve comprehensive entitlements and limits for a **business** (`businessId`, optional `institutionCustomerId`, optional `featureName`). - Retrieve granular entitlements for an **individual business banking user** (user entitlements endpoint; requires parameters such as **`institutionId`**). ## Scopes | Scope | Description | |-------|-------------| | `business-profile:read` | Read business details | | `institution-users:read` | Read user details | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BBE_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BBE-41107 | Error in retrieving institution user | 500 | | BBE-41108 | Invalid JWT | 401 | | BBE-41109 | Invalid roles or entitlements | 403 | | BBE-41110 | Required request parameter 'businessId' not present | 400 | | BBE-41111 | Unexpected server error | 500 | ## Endpoints - name: Payments x-displayName: Payments description: > **Business Banking Payments APIs** support **ACH** payments and collections, **domestic** and **international wire** payments, and retrieval of payment history and individual payments by identifier. ## End-user benefits - Create ACH Payments and ACH Collections. - Create domestic wire payments and international wire payments. - List ACH Payments and ACH Collections. - List domestic wires and international wires. - Retrieve a single payment by `paymentId` for ACH or wire flows. ## Integration capabilities - Create ACH Payments and ACH Collections. - Create domestic wire payments and international wire payments. - List ACH Payments and ACH Collections. - List domestic wires and international wires. - Retrieve a single payment by `paymentId` for ACH or wire flows. ## Scopes | Scope | Description | |-------|-------------| | `ach-payments:read` | Read ACH Payment details | | `ach-payments:write` | Create and update ACH Payment details | | `wire-payments:read` | Read wire payment details | | `wire-payments:write` | Create and update wire payment details | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (BBP_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | BBP-126 | Invalid institution Id | 400 | | BBP-127 | Invalid business Id | 400 | | BBP-128 | Invalid login Id | 400 | | BBP-129 | Invalid SEC code | 400 | | BBP-130 | Invalid transaction | 400 | | BBP-131 | Invalid JWT | 401 | | BBP-132 | Invalid role | 401 | | BBP-133 | Bad request | 400 | | BBP-133 | Query parameters (fromDate, toDate) are required | 400 | | BBP-133 | Missing or invalid payment id | 400 | | BBP-134 | No record exists for the id | 404 | | BBP-135 | Invalid User. User not found in System | 400 | | BBP-136 | Invalid payment type | 400 | | BBP-137 | Invalid payment status | 400 | | BBP-138 | Invalid payment | 400 | | BBP-139 | Invalid ACH payment description | 400 | | BBP-140 | Invalid payment amount | 400 | | BBP-141 | Invalid ACH CompanyId | 400 | | BBP-142 | Invalid currency code | 400 | | BBP-143 | Invalid transaction type | 400 | | BBP-144 | Invalid account type | 400 | | BBP-145 | Invalid routing number | 400 | | BBP-146 | Invalid contact name | 400 | | BBP-147 | Invalid contact account number | 400 | | BBP-148 | Invalid originator account number | 400 | | BBP-149 | Invalid addenda | 400 | | BBP-150 | Invalid contact identification number | 400 | | BBP-151 | Invalid delivery date | 400 | | BBP-152 | Invalid header value for request. | 400 | | BBP-153 | Invalid contact bank name | 400 | | BBP-154 | Invalid beneficiary details | 400 | | BBP-155 | Invalid beneficiary name | 400 | | BBP-156 | Invalid beneficiary address | 400 | | BBP-157 | Invalid beneficiary address street | 400 | | BBP-158 | Invalid beneficiary address city | 400 | | BBP-159 | Invalid beneficiary address state | 400 | | BBP-160 | Invalid beneficiary address zip code | 400 | | BBP-161 | Invalid beneficiary address country | 400 | | BBP-162 | Invalid purpose of wire | 400 | | BBP-163 | Invalid beneficiary account number | 400 | | BBP-164 | Invalid beneficiary instructions | 400 | | BBP-165 | Invalid beneficiary bank details | 400 | | BBP-166 | Invalid beneficiary bank name | 400 | | BBP-167 | Invalid beneficiary routing number | 400 | | BBP-168 | Invalid beneficiary SWIFT number | 400 | | BBP-169 | Invalid beneficiary account number | 400 | | BBP-170 | Invalid beneficiary bank instructions | 400 | | BBP-171 | Invalid beneficiary bank address 1 | 400 | | BBP-172 | Invalid beneficiary bank address 2 | 400 | | BBP-173 | Invalid beneficiary bank address city | 400 | | BBP-174 | Invalid beneficiary bank address state | 400 | | BBP-175 | Invalid beneficiary bank address zip code | 400 | | BBP-176 | Invalid beneficiary bank address country | 400 | | BBP-177 | Invalid intermediary bank details | 400 | | BBP-178 | Invalid intermediary bank type | 400 | | BBP-179 | Invalid intermediary bank account number | 400 | | BBP-180 | Invalid intermediary bank name | 400 | | BBP-181 | Invalid intermediary routing number | 400 | | BBP-182 | Invalid intermediary bank SWIFT number | 400 | | BBP-183 | Invalid foreign currency amount | 400 | | BBP-184 | Invalid send in foreign currency | 400 | | BBP-185 | Invalid payment name | 400 | ## Endpoints - name: Recipients x-displayName: Recipients description: > **Recipient APIs** expose the **Recipients** service: **intra-FI saved payees** for the authenticated user. Use them to **list, create, update, and delete** recipients (and to **validate** a recipient before posting a transfer). They complement the Transfers APIs—define who can be paid, then initiate movement to that payee. ## End-user benefits - Manage a list of trusted recipients for quick transfers. ## Integration capabilities - Manage transfer recipients (create, retrieve, update, delete). - Validate recipients before initiating transfers. ## Scopes | Scope | Description | |-------|-------------| | `recipients:read` | Read recipient information | | `recipients:write` | Create, update, and delete recipients | | `recipients:delete` | Delete recipients | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (REC_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | REC_10005 | User not found at host | 400 | | REC_10006 | Invalid passcode | 400 | | REC_10007 | Invalid account | 400 | | REC_10008 | Test lucky transfer failed | 500 | | REC_10009 | Invalid query param | 400 | | REC_11001 | Full authentication was not provided in the request | 401 | | REC_11002 | The authentication token is invalid | 401 | | REC_11003 | The authentication does not authorize this request | 403 | | REC_11004 | InstitutionId is invalid or incorrectly configured | 400 | | REC_12001 | Request should only contain printable ASCII characters | 400 | | REC_12002 | Request is missing a transactionId header | 400 | | REC_12003 | Request transactionId header is too long | 400 | | REC_12004 | Required fields are not provided or not valid | 400 | | REC_12005 | Request cannot be blank | 400 | | REC_12006 | Recipient id cannot be blank | 400 | | REC_12007 | Provider type cannot be blank | 400 | | REC_12008 | Invalid provider type | 400 | | REC_12009 | Invalid email | 400 | | REC_12010 | Recipient ids from request and URL do not match | 400 | | REC_12011 | Request field length exceeds max length | 400 | | REC_12012 | Account type is not from the list of allowed types | 400 | | REC_12013 | Sender account id cannot be blank | 400 | | REC_12014 | Request header is too long | 400 | | REC_12015 | Some fields in the request body are not supported for the configured provider type | 400 | | REC_13001 | This recipient already exists | 400 | | REC_13002 | This recipient nickname already exists | 400 | | REC_14001 | Recipient not added to the database successfully | 500 | | REC_14002 | Recipient not deleted successfully | 500 | | REC_14003 | Error while fetching recipients from database | 500 | | REC_14004 | Recipient not found | 400 | | REC_14005 | Error while updating recipient information | 400, 401, or 500 | | REC_22001 | Internal validation error | 500 | | REC_99997 | Client error | 400 | | REC_99998 | Server cannot handle this request | 400, 404, or 405 | | REC_99999 | Server error | 500 | ## Endpoints - name: Transfers x-displayName: Transfers description: > **Transfers APIs** expose the **Transfers** service: **one-time** and **scheduled recurring** movement between accounts—standard moves, **loan payments**, **IRA contributions**, and **recipient** transfers to other members at the same FI. A single API surface covers immediate execution and future-dated or repeating schedules. Use **Recipient APIs** first when the destination is a saved payee. ## End-user benefits - Transfer funds between their own accounts. - Send money to other members at the same financial institution. - Set up one-time or recurring scheduled transfers. ## Integration capabilities - Create one-time and scheduled transfers between accounts. - Support loan payments and IRA contribution transfers. - Configure scheduled recurring transfers with multiple frequencies. **Transfer types** | Type | Description | |------|-------------| | Standard | Regular transfer between accounts | | Loan Payment | Transfer to pay loan balance | | IRA Contribution | Transfer for retirement contributions | | Recipient Transfer | Transfer to another member's account | **Scheduled transfer frequencies** | Frequency | Description | |-----------|-------------| | `ONETIME` | Single execution | | `DAILY` | Every day | | `WEEKLY` | Once per week | | `BIWEEKLY` | Every two weeks | | `TWICEMONTHLY` | Twice per month | | `MONTHLY` | Once per month | | `QUARTERLY` | Every three months | | `SEMIANNUALLY` | Twice per year | | `ANNUALLY` | Once per year | **Loan payment options** (when applicable): `DEFAULT`, `PRINCIPAL_ONLY`, `INTEREST_ONLY`, `EXCESS_TO_PRINCIPAL`, `EXCESS_TO_INTEREST`. ## Scopes | Scope | Description | |-------|-------------| | `recipients:read` | Read recipient information | | `recipients:write` | Create, update, and delete recipients | | `transfers:write` | Create transfers | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (TFR_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | TFR_10000 | Client error. Transfer could not be completed | 400 | | TFR_10001 | Server error. Transfer could not be completed | 500 | | TFR_10002 | Invalid institution id | 400 | | TFR_10003 | The From account does not exist or could not be retrieved | 400 | | TFR_10004 | The To account does not exist or could not be retrieved | 400 | | TFR_10005 | An unacceptable transfer type was provided for this transfer | 400 | | TFR_10006 | Contributions to a prior year cannot be scheduled | 400 | | TFR_10007 | A start date must be provided, and must be after today | 400 | | TFR_10008 | An end date after the start date must be provided and must yield at least one execution | 400 | | TFR_10009 | The number of executions is required for the given life type (positive integer ≤ 99) | 400 | | TFR_10010 | The provided frequency requires a valid day or set of days to execute on | 400 | | TFR_10011 | The provided schedule requires a life type | 400 | | TFR_10012 | The provided schedule requires a valid frequency | 400 | | TFR_10013 | Loan overpayment cannot be scheduled | 400 | | TFR_10014 | SRTs are not enabled for this institution | 400 | | TFR_10015 | Loan overpayment is not enabled for this institution | 400 | | TFR_10016 | Loan overpayment options are not configured for this institution | 400 | | TFR_10017 | Loan overpayment options for this institution could not be processed | 400 | | TFR_10018 | Loan overpayment is not allowed for the To account | 400 | | TFR_10019 | Loan overpayment option is not allowed for the To account | 400 | | TFR_10020 | The transfer amount is required | 400 | | TFR_10021 | The transfer amount is invalid | 400 | | TFR_10022 | The transfer amount exceeds the From account balance | 400 | | TFR_10023 | The From User is required | 400 | | TFR_10024 | The To User is required | 400 | | TFR_10025 | The From account is restricted from making a transfer | 400 | | TFR_10026 | The To account is restricted from receiving a transfer | 400 | | TFR_10027 | The From account has an invalid status and cannot be used to make a transfer | 400 | | TFR_10028 | The To account has an invalid status and cannot be used to receive a transfer | 400 | | TFR_10029 | The From account and To account cannot be the same | 400 | | TFR_10030 | The RegE confirmation message could not be created | 400 | | TFR_10031 | The transfer amount must equal the To account loan payment amount | 400 | | TFR_10032 | The transfer amount must be less than or equal to the To account loan payment amount | 400 | | TFR_10033 | The transfer amount must be greater than or equal to the To account loan payment amount | 400 | | TFR_10034 | Invalid query param | 400 | | TFR_10035 | Request should only contain printable ASCII characters | 400 | | TFR_10036 | Request is missing a transactionId header | 400 | | TFR_10037 | Request transactionId header is too long | 400 | | TFR_10038 | The To account prior year eligible contribution amount is missing, zero, or negative | 400 | | TFR_10039 | The transfer amount exceeds the prior year eligible contribution amount | 400 | | TFR_10040 | The To account eligible contribution amount is missing, zero, or negative | 400 | | TFR_10041 | The transfer amount exceeds the eligible contribution amount | 400 | | TFR_10042 | Memo is not enabled for this institution | 400 | | TFR_10043 | Memo exceeds maximum length allowed | 400 | | TFR_10044 | Memo contains an invalid character | 400 | | TFR_10045 | Transfers From the institution owned account transfer type is not enabled | 400 | | TFR_10046 | Transfers To the institution owned account transfer type is not enabled | 400 | | TFR_10047 | The institution owned account is not properly configured for this institution | 400 | | TFR_10048 | The cross TIN transfer type was set incorrectly | 400 | | TFR_10050 | Recipient transfers not allowed | 400 | | TFR_10051 | Recipient not found | 400 | | TFR_10052 | Recipient transfers to the requested account type not allowed | 400 | | TFR_10053 | Invalid to account type in validate recipient transfer request | 400 | | TFR_10054 | Invalid to passcode in validate recipient transfer request | 400 | | TFR_10056 | The request body could not be parsed; ensure required fields and valid values | 400 | | TFR_10057 | Business banking user not found | 400 | | TFR_10058 | The fromAccountId field is required | 400 | | TFR_10059 | The toAccountId field is required | 400 | | TFR_10060 | The CIF number is required, but was not found | 401 | | TFR_10061 | Request callingAppId header is too long | 400 | | TFR_10062 | The provided schedule is invalid for the life type and frequency | 400 | | TFR_10063 | An incorrect number of days was provided for the given frequency | 400 | | TFR_10064 | Test transfers cannot be scheduled | 400 | | TFR_10065 | Request header is too long | 400 | | TFR_10066 | Transfer id is required | 400 | | TFR_10067 | Transfer ids from request and URL do not match | 400 | | TFR_10068 | Unauthorized access | 403 | | TFR_11001 | Full authentication was not provided in the request | 401 | | TFR_11002 | The authentication token is invalid | 401 | | TFR_11003 | The authentication does not authorize this request | 403 | ## Endpoints - name: System Alerts x-displayName: System Alerts description: > **System Alerts** define the core alert events available in the platform, including definitions that may align with **external systems** or **third-party vendors** (for example, partner platforms, notification providers, or core integrations). They describe what triggers an alert, its category and event domain, applicable account types, and supported delivery channels. ## End-user benefits - Defines what events customers can be notified about, delivering a standardized and predictable alert experience. - Alerts are tied to specific account and transaction events, helping customers stay informed about meaningful activity. - Supports notifications across common channels to meet customer communication preferences. ## Integration capabilities - Define available alert types and their metadata. - Associate **notification channels** (Email, SMS, Push, Web) with types where the model allows. - Filter list operations by **alert category**, **alert type name**, or **external system**. ## Supported channels | Channel | Description | |---------|-------------| | EMAIL | Email notifications | | SMS | Text messages | | PUSH | Mobile push | | WEB | Web notifications | ## Scopes | Scope | Description | |-------|-------------| | `alertMgmt:read` | Read alert types and associated templates | | `alertMgmt:write` | Write alert types and associated templates | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **System (PRMSYS_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMSYS_10001 | Cross talk / concurrency error occurred | 400 | | PRMSYS_10002 | Malformed input data | 400 | | PRMSYS_10003 | Unknown application error occurred | 400 | | PRMSYS_10004 | Error occurred while validating JWT token | 400 | | PRMSYS_10005 | Resource of name already exists | 204 | | PRMSYS_10006 | Requested resource of identifier doesn't exist | 400 | | PRMSYS_10007 | Resource of identifier already exists | 400 | | PRMSYS_10008 | Requested resource of name doesn't exist | 400 | | PRMSYS_10015 | Required attribute missing | 400 | | PRMSYS_10016 | Non Printable ASCII character detected | 400 | **Validation (PRMVAL_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMVAL_10001 | Path parameter doesn't match request body value | 400 | | PRMVAL_10002 | Invalid value for field | 400 | | PRMVAL_10003 | Invalid institution | 400 | | PRMVAL_10005 | Invalid channel type | 400 | | PRMVAL_10006 | Invalid alert type | 400 | | PRMVAL_10007 | Field is required | 400 | | PRMVAL_10008 | Field is invalid | 400 | ## Endpoints - name: Institution Alerts x-displayName: Institution Alerts description: > **Institution Alerts** allow financial institutions to enable, disable, or tailor alert types for their specific environment. They capture institution‑level opt‑in status, supported channels, and configuration overrides, enabling institutions to control which alerts are available to their customers. ## End-user benefits - Financial institutions can customize alert types and delivery channels to align with their brand and customer preferences. - Enables targeted notifications for specific account types and transaction scenarios. - Supports multi-channel delivery (Email, SMS, Push, Web) to meet customer communication preferences. ## Integration capabilities - List institution alert types with filters (**alertTypeName**, **externalSystem**, **status** active/inactive). - Create and maintain financial institution scoped alert type rows aligned to institution programs. - Provides centralized alert management by defining available alert types, configuring dynamic message templates, supporting multi‑channel delivery (Email, SMS, Push, Web), and enabling institution‑specific channel controls and customizations. ## Scopes | Scope | Description | |-------|-------------| | `alertMgmt:read` | Read alert types and associated templates | | `alertMgmt:write` | Write alert types and associated templates | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **System (PRMSYS_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMSYS_10001 | Cross talk / concurrency error occurred | 400 | | PRMSYS_10002 | Malformed input data | 400 | | PRMSYS_10003 | Unknown application error occurred | 400 | | PRMSYS_10004 | Error occurred while validating JWT token | 400 | | PRMSYS_10005 | Resource of name already exists | 204 | | PRMSYS_10006 | Requested resource of identifier doesn't exist | 400 | | PRMSYS_10007 | Resource of identifier already exists | 400 | | PRMSYS_10008 | Requested resource of name doesn't exist | 400 | | PRMSYS_10015 | Required attribute missing | 400 | | PRMSYS_10016 | Non Printable ASCII character detected | 400 | **Validation (PRMVAL_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMVAL_10001 | Path parameter doesn't match request body value | 400 | | PRMVAL_10002 | Invalid value for field | 400 | | PRMVAL_10003 | Invalid institution | 400 | | PRMVAL_10005 | Invalid channel type | 400 | | PRMVAL_10006 | Invalid alert type | 400 | | PRMVAL_10007 | Field is required | 400 | | PRMVAL_10008 | Field is invalid | 400 | ## Endpoints - name: Templates x-displayName: Templates description: > **Alert Templates** define the user‑facing content delivered for alerts. They manage channel‑specific messaging (email, SMS, push, web), content type, locale, and publishing state, allowing institutions to customize how alerts are presented across channels and languages. ## End-user benefits - Alerts use standardized templates to deliver easy‑to‑understand and uniform messages. - Messaging is tailored for each delivery channel to improve readability and usability. - Supports language and regional formats to ensure alerts are clear and appropriate for customers. ## Integration capabilities - **List** templates with filters: **alert type name**, **channel**, **id**, **locale**, **state** (DRAFT, PUBLISHED, ARCHIVED). - **Create**, **update**, and **delete** templates; set **content type**, **channel**, **locale**, and **vendor** context where applicable. - Templates define the content of alerts by channel. Supports variable substitution using a **`variableMap`** for dynamic content like account numbers, balances, and transaction amounts. ## Supported channels | Channel | Description | |---------|-------------| | EMAIL | Email — subject and body | | SMS | SMS body | | PUSH | Push notification body | | WEB | Web notification body | ## Template content types | Content type | Description | |--------------|-------------| | EMAIL_SUBJECT | Email subject line | | EMAIL_BODY | Email body | | SMS_BODY | SMS content | | PUSH_BODY | Push content | | WEB_BODY | Web notification content | ## Scopes | Scope | Description | |-------|-------------| | `alertMgmt:read` | Read alert types and associated templates | | `alertMgmt:write` | Write alert types and associated templates | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **System (PRMSYS_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMSYS_10001 | Cross talk / concurrency error occurred | 400 | | PRMSYS_10002 | Malformed input data | 400 | | PRMSYS_10003 | Unknown application error occurred | 400 | | PRMSYS_10004 | Error occurred while validating JWT token | 400 | | PRMSYS_10005 | Resource of name already exists | 204 | | PRMSYS_10006 | Requested resource of identifier doesn't exist | 400 | | PRMSYS_10007 | Resource of identifier already exists | 400 | | PRMSYS_10008 | Requested resource of name doesn't exist | 400 | | PRMSYS_10015 | Required attribute missing | 400 | | PRMSYS_10016 | Non Printable ASCII character detected | 400 | **Validation (PRMVAL_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMVAL_10001 | Path parameter doesn't match request body value | 400 | | PRMVAL_10002 | Invalid value for field | 400 | | PRMVAL_10003 | Invalid institution | 400 | | PRMVAL_10005 | Invalid channel type | 400 | | PRMVAL_10006 | Invalid alert type | 400 | | PRMVAL_10007 | Field is required | 400 | | PRMVAL_10008 | Field is invalid | 400 | ## Endpoints - name: Institution Preferences x-displayName: Institution Preferences description: > **Institution Alert Preferences** define the default alert opt‑in and opt‑out behavior at the financial‑institution level. They allow institutions to control which alert types and delivery channels are enabled by default, establishing baseline preferences that apply to users when no user‑specific settings are configured. ## End-user benefits - Financial institutions define **default** alert behavior for their customer base. ## Integration capabilities - Provides centralized alert preference management at the institution level. - Supports multi‑channel delivery (Email, SMS, Push, Web) with channel‑specific opt‑in/out controls. - Enables flexible filtering by account, user, and alert type. ## Scopes | Scope | Description | |-------|-------------| | `alertPref:read` | Read alert preferences | | `alertPref:write` | Write alert preferences | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **Alert preference (PRMAPS_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMAPS_10007 | Invalid alert preference ID | 404 | | PRMAPS_10008 | Alert preference mismatch | 400 | **Validation (PRMVAL_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMVAL_10004 | Invalid user | 400 | | PRMVAL_10006 | Invalid alert type | 400 | | PRMVAL_10009 | Requested alert type was not found for the FI | 400 | | PRMVAL_10010 | Preference not found for enrollmentId | 400 | | PRMVAL_10011 | Preference not found for institution | 400 | | PRMVAL_10012 | Value should not be null | 400 | | PRMVAL_10013 | Invalid alert preference | 400 | | PRMVAL_10015 | Alert type not configured for channel or disabled for Institution | 400 | | PRMVAL_10016 | Unsupported account type | 400 | ## Endpoints - name: User Preferences x-displayName: User Preferences description: > **User Alert Preferences** allow individual customers to manage their personal alert settings. They enable users to opt in or out of specific alert types, choose notification channels, and scope alerts to specific accounts or locations, with institution‑level preferences serving as defaults when user preferences are not explicitly set. ## End-user benefits - Set personalized thresholds (for example balance alerts). - Choose notification channels and manage alerts for specific accounts or cards. ## Integration capabilities - Provides personalized alert management for individual users. - Supports multi‑channel delivery (Email, SMS, Push, Web) with user‑specific opt‑in/out controls. - Enables flexible filtering by account, user, and alert type. - **Business Banking:** use **`institutionCustomerId`** for location/business context; resolve the business entity via the Institution User API when needed. - With **`client_credentials`**, pass **`hostUserId`** or **`loginId`** (mutually exclusive). Optional **`institutionCustomerId`** header for business context. ## Scopes | Scope | Description | |-------|-------------| | `alertPref:read` | Read alert preferences | | `alertPref:write` | Write alert preferences | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **Alert preference (PRMAPS_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMAPS_10007 | Invalid alert preference ID | 404 | | PRMAPS_10008 | Alert preference mismatch | 400 | **Validation (PRMVAL_*)** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMVAL_10004 | Invalid user | 400 | | PRMVAL_10006 | Invalid alert type | 400 | | PRMVAL_10009 | Requested alert type was not found for the FI | 400 | | PRMVAL_10010 | Preference not found for enrollmentId | 400 | | PRMVAL_10011 | Preference not found for institution | 400 | | PRMVAL_10012 | Value should not be null | 400 | | PRMVAL_10013 | Invalid alert preference | 400 | | PRMVAL_10015 | Alert type not configured for channel or disabled for Institution | 400 | | PRMVAL_10016 | Unsupported account type | 400 | ## Endpoints - name: Notification Channels x-displayName: Notification Channels description: > **Notification Channels** API manages customer event subscriptions. This enables customers to receive alerts through their preferred communication channels. **Note:** These endpoints require a **V1 OAuth token**. See Authentication API documentation for V1 token endpoint details. ## End-user benefits - Subscribe to specific event types - Control how and where they receive notifications ## Integration capabilities - Create and manage event subscriptions per user or institution - Send events to subscribed end-users ## Error codes | HTTP Status Code | Message | |------------------|---------| | 400 | Missing Required HTTP Headers or Invalid/Missing Inputs | | 401 | Authorization invalid or Missing Authorization Header | | 404 | Entities not Found (User or Account not found) | | 500 | Internal Server Error | ## Endpoints - name: History And Events x-displayName: History And Events description: > **History And Events** API enables publishing alert events and retrieving alert history. This is the bridge between events occurring in the system and alerts being sent to customers. ## End-user benefits - Receive proactive notifications about account activity - Stay informed about important financial events in real-time ## Integration capabilities - Publish account, transaction, and notification events - Retrieve alert history with filtering by account, date, and status - Track alert delivery across Email, SMS, and Push channels - **Business Banking:** use **`institutionCustomerId`** for location/business context; resolve the business entity via the Institution User API when needed. ## Event domain types | Event type | Description | |------------|-------------| | **AccountEvent** | Account-related (e.g. balance changes, status updates) | | **TransactionEvent** | Transaction-related (deposits, withdrawals, transfers) | | **NotificationEvent** | General / external notification passthrough | ## Alert history Retrieve published alerts using various filter parameters: - Filter by account IDs - Filter by date range (startDate, endDate) - Filter by alert type names - Filter by delivery status (EMAIL, SMS, PUSH) - Filter by read/unread status ## Scopes **Alert history** | Scope | Description | |-------|-------------| | `alertHist:read` | Read alert history | **Realtime publish** | Scope | Description | |-------|-------------| | `alerts:publish` | Publish alert events | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes **Alert history** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMSYS_10003 | Unknown application error occurred | 400 | | PRMSYS_10004 | Error occurred while validating JWT token | 400 | | PRMSYS_10009 | Resource doesn't exist for the provided search criteria | 500 | | PRMSYS_10011 | Unauthorized access to the resource | 404 | | PRMSYS_10012 | Unauthorized access — JWT value mismatch | 404 | | PRMVAL_10014 | Invalid date format | 400 | **Realtime publish** | Code | Message | HTTP Status Code | |------|---------|-------------| | PRMSYS_10002 | Malformed input data | 500 | | PRMSYS_10003 | Missing eventDetails or notification | 500 | | PRMSYS_10007 | Missing mandatory fields | 500 | | PRMSYS_10008 | Invalid institutionId | 500 | | PRMSYS_10013 | Missing Authorization Token | 500 | ## Endpoints - name: Institution Disclosures x-displayName: Institution Disclosures description: > The Institution Disclosures API manages financial‑institution disclosure definitions used to control regulatory agreements, online statements, and other disclosures presented in downstream onboarding, enrollment, and account‑servicing flows. ## End-user benefits - Retrieve the complete set of disclosure definitions (enabled and disabled) for configuration, auditing, or integration with customer‑facing experiences. - Define and maintain disclosures that determine what content is presented to users, such as regulatory agreements or online statement disclosures. ## Integration capabilities - Get all disclosures configured for the institution making the request. - Create a new disclosure by name, with optional URL-based content, and set whether it is enabled or disabled. - Update an existing disclosure’s name, content, or enabled status. The disclosure ID in the request path and body must match. ## Scopes | Scope | Description | |-------|-------------| | `disclosures:read` | Retrieve disclosure information | | `disclosures:write` | Create, update, or delete disclosures | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (DSC_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | DSC_10002 | Invalid request. | 400 | | DSC_10003 | Invalid operation. | 501 | | DSC_10009 | Invalid query param. | 400 | | DSC_11001 | Full authentication was not provided in the request. | 401 | | DSC_11002 | The authentication token that was sent in the request is invalid. | 401 | | DSC_11003 | The authentication provided does not authorize this request. | 401 | | DSC_11004 | A location id is required for business banking users | 400 | | DSC_12001 | Request should only contain printable ASCII characters. | 400 | | DSC_12002 | Request is missing a transactionId header. | 400 | | DSC_12003 | Request transactionId header is too long. | 400 | | DSC_12004 | Required fields are not provided or not valid. | 400 | | DSC_12005 | Request cannot be blank. | 400 | | DSC_12006 | Invalid or empty account type in request. | 400 | | DSC_12007 | Request header is too long | 400 | | DSC_12011 | One of the request field length is greater than max length. | 400 | | DSC_12012 | Disclosure ids from request body and URL do not match. | 400 | | DSC_12013 | Request callingAppId header is too long. | 400 | | DSC_12014 | RequestBody size exceeds limit. | 400 | | DSC_12015 | Disclosure not supported | 400 | | DSC_12016 | Account Id is missing in disclosure | 400 | | DSC_12017 | Paper waiver field is missing in disclosure | 400 | | DSC_13001 | Data not found for user | 400 | | DSC_13002 | Disclosures are not retrieved successfully. | 500 | | DSC_13003 | Disclosures are not created successfully. | 500 | | DSC_13004 | Disclosures are not updated successfully. | 500 | | DSC_13005 | The CIF number is required, but was not found | 400 | | DSC_22001 | Internal validation error. | 500 | | DSC_23002 | Error interacting with CBS Service | 500 | | DSC_23003 | Error interacting with CAS Service | 500 | | DSC_23004 | Error interacting with NIIS Service | 500 | | DSC_23005 | Error interacting with Accounts Service | 500 | | DSC_90000 | Server cannot handle this request. | 400 | | DSC_99997 | Client error | 400 | | DSC_99999 | Internal server error. | 500 | ## Endpoints - name: User Disclosures x-displayName: User Disclosures description: > The User Disclosures API tracks user‑level and account‑level disclosure acceptance and enrollment for institution disclosures. It supports custom disclosures, online statements (OLS), and related flows such as e‑sign (ESIGN) and Internet Banking (IB). This API is typically used during onboarding, account servicing, and preference‑management experiences to determine whether required disclosures have been accepted or whether users are enrolled in optional services such as online statements. ## End-user benefits - View acceptance or enrollment status for required disclosures during onboarding or account updates. - Manage online statement preferences at the account level, including paperless settings. ## Integration capabilities - Get the current disclosure acceptance and enrollment status for a user, including any account‑level settings. - Capture user acceptance of disclosures or enrollment in online statements. - Update the status of custom disclosures. - Unenroll an account from online statements. - When using client credentials authentication, provide either `hostUserId` or `loginId` (mutually exclusive). - Use `institutionCustomerId` to scope results to a specific business location (see the [Get Customer Profile](/api/generated/get-customer-information/) API for more details). This is specific to **Business Banking** users. ## Scopes | Scope | Description | |-------|-------------| | `accounts:read` | Get and find accounts | | `disclosures:read` | Retrieve disclosure information | | `disclosures:write` | Create, update, or delete disclosures | | `institution-users:read` | Required with `disclosures:read` for user context | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (DSC_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | DSC_10002 | Invalid request. | 400 | | DSC_10003 | Invalid operation. | 501 | | DSC_10009 | Invalid query param. | 400 | | DSC_11001 | Full authentication was not provided in the request. | 401 | | DSC_11002 | The authentication token that was sent in the request is invalid. | 401 | | DSC_11003 | The authentication provided does not authorize this request. | 401 | | DSC_11004 | A location id is required for business banking users | 400 | | DSC_12001 | Request should only contain printable ASCII characters. | 400 | | DSC_12002 | Request is missing a transactionId header. | 400 | | DSC_12003 | Request transactionId header is too long. | 400 | | DSC_12004 | Required fields are not provided or not valid. | 400 | | DSC_12005 | Request cannot be blank. | 400 | | DSC_12006 | Invalid or empty account type in request. | 400 | | DSC_12007 | Request header is too long | 400 | | DSC_12011 | One of the request field length is greater than max length. | 400 | | DSC_12012 | Disclosure ids from request body and URL do not match. | 400 | | DSC_12013 | Request callingAppId header is too long. | 400 | | DSC_12014 | RequestBody size exceeds limit. | 400 | | DSC_12015 | Disclosure not supported | 400 | | DSC_12016 | Account Id is missing in disclosure | 400 | | DSC_12017 | Paper waiver field is missing in disclosure | 400 | | DSC_13001 | Data not found for user | 400 | | DSC_13002 | Disclosures are not retrieved successfully. | 500 | | DSC_13003 | Disclosures are not created successfully. | 500 | | DSC_13004 | Disclosures are not updated successfully. | 500 | | DSC_13005 | The CIF number is required, but was not found | 400 | | DSC_22001 | Internal validation error. | 500 | | DSC_23002 | Error interacting with CBS Service | 500 | | DSC_23003 | Error interacting with CAS Service | 500 | | DSC_23004 | Error interacting with NIIS Service | 500 | | DSC_23005 | Error interacting with Accounts Service | 500 | | DSC_90000 | Server cannot handle this request. | 400 | | DSC_99997 | Client error | 400 | | DSC_99999 | Internal server error. | 500 | ## Endpoints - name: Electronic Statements x-displayName: Electronic Statements description: > The **Electronic Statements** APIs enable customers to opt in or out of electronic or paper statement delivery at either the account or user level. ## Prerequisites - MultiStatement (multiple account online statement preference selection) must be enabled (true) to support account‑level retrieval and updates. - Customers must accept the electronic statement disclosure agreement at the user level. If not already accepted, see the [Create User Disclosure](/api/generated/create-user-disclosure-v-1/) API to create it. - Customers must have an active status. ## End-user benefits - Access statements electronically for a faster and more convenient experience when viewing and managing accounts online. - Flexibility to choose electronic or paper delivery at the account level or across all accounts. - Assurance that disclosure and consent requirements are properly managed, supporting both compliance and customer preferences. ## Integration capabilities - Retrieve a customer’s e‑statement opt‑in status across accounts, with support for account‑level filtering. - Enable customers to opt in or out at the account or user level, including both individual and bulk updates. - Incorporate disclosure validation into workflows to ensure preferences align with required consent and institutional policies. - Generate e‑statement opt‑in reports for analytics, monitoring, and compliance tracking. ## Scopes | Scope | Description | |-------|-------------| | `accounts:read` | Get and find accounts | | `disclosures:read` | Get institution disclosure context | | `disclosures:write` | Update opt-in/out preferences | | `institution-users:read` | Verify customer is active | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes (UXESTMT_*) | Code | Message | HTTP Status Code | |------|---------|-------------| | UXESTMT_10001 | Required Authorization header is missing | 400 | | UXESTMT_10002 | Invalid JWT token | 400 | | UXESTMT_10003 | Required role not present in JWT token | 403 | | UXESTMT_10004 | JWT token has expired | 400 | | UXESTMT_10005 | JWT token is invalid, does not contain institution id | 400 | | UXESTMT_10006 | JWT token is invalid, does not contain institution customers id | 400 | | UXESTMT_10007 | Required Correlation Id header is missing | 400 | | UXESTMT_10008 | Correlation Id is not a GUID | 400 | | UXESTMT_10011 | Invalid IP address in the header | 400 | | UXESTMT_10012 | Invalid Authorization in the header | 400 | | UXESTMT_11007 | Invalid path param | 400 | | UXESTMT_11008 | Invalid path | 400 | | UXESTMT_11010 | Required input fields are missing | 400 | | UXESTMT_11012 | The given account id is not available in user disclosure | 400 | | UXESTMT_11013 | User disclosure should be in ACCEPTED status | 400 | | UXESTMT_11014 | InstitutionId is invalid or its incorrectly configured | 400 | | UXESTMT_11015 | The days difference should not be greater than 90 days | 400 | | UXESTMT_11016 | From date can not be greater than to date | 400 | | UXESTMT_11017 | Invalid date format, the date format should be dd-MM-yyyy | 400 | | UXESTMT_11018 | Invalid request, please check the input parameters | 400 | | UXESTMT_11019 | fromDate and toDate can not be same | 400 | | UXESTMT_11020 | No accounts are available in user disclosure to update | 400 | | UXESTMT_11021 | Multi-statement functionality is not set up for this institution. | 400 | | UXESTMT_30001 | Error interacting with the service | 500 or 503 | | UXESTMT_30002 | Error interacting with the external service | 500 or 503 | | UXESTMT_30003 | Disclosure not available | 503 | | UXESTMT_88888 | No entitled customers found | 404 | | UXESTMT_88889 | The given user is not active | 400 | | UXESTMT_88891 | Disclosures name is not available for the given account id | 404 | | UXESTMT_99998 | Cannot handle this request. Please check the url, request body and parameters | 400, 500, or 503 | ## Endpoints - name: Experience Groups x-displayName: Experience Groups description: > The **Experience Groups** APIs manage static experience groups within the retail banking platform. Use these APIs to create and manage user cohorts, view participant counts, and bulk update group membership through CSV uploads. ## End-user Benefits - Create, update, retrieve, and delete static experience groups - Bulk add, remove, or replace group participants using CSV file uploads - View participant counts for each group - Navigate large group collections using paginated results ## Integration Capabilities - Create, update, retrieve, list, and delete groups - Upload participant lists with `ADD`, `REMOVE`, or `REPLACE` operations - List groups using 0-based page and size parameters (default page size: 20), with `next` and `previous` links for navigation between result pages ## Scopes | Scope | Description | |-------|-------------| | `groups:read` | Read experience groups | | `groups:write` | Create, update, and delete experience groups | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes | Code | Message | HTTP Status Code | |--------|-------|-------------------| | 2000 | invalid groupId {groupId} | 400 | | 2000 | groupId {groupId} not found or has been marked for deletion | 400 | | 2000 | Content-Type must be multipart/form-data or multipart/mixed | 400 | | 2000 | Invalid type value. Type value can only be ADD, REMOVE, or REPLACE. | 400 | | 2000 | type parameter is required. | 400 | | 2000 | Uploaded file data is empty. | 400 | | 2000 | File type: {contentType} not allowed. | 400 | | 2000 | {field} is required | 400 | | 2000 | {field} cannot exceed {max} characters | 400 | | 2001 | There are import jobs in process, need to wait for them to finish. | 400 | | 2001 | additional details may be available in server logs | 500 | | 2003 | Invalid Authorization | 401 | | 2004 | A group with name {groupName} already exists. | 400 | ## Endpoints - name: Jobs x-displayName: Jobs description: > **Jobs** APIs represent asynchronous batch operations associated with experience groups, primarily used for large‑scale participant uploads and updates. They enable safe, trackable processing of bulk user changes. ## End-user benefits - Tracking the status and progress of participant upload jobs - Viewing success and failure counts for each job execution - Retrieving detailed error information for failed records - Listing and filtering jobs by group for operational monitoring ## Integration capabilities - API‑based job monitoring with access to status, success, and failure metrics - Granular error retrieval endpoints to support retries, remediation, and audits - Easy integration with automation and admin tools using standard enterprise API patterns ## Job statuses | Status | Description | |--------|-------------| | `CREATED` | Queued for processing | | `PROCESSING` | In progress | | `SUCCESSFUL` | All records processed | | `PARTIAL_SUCCESS` | Some failures — use **errors** endpoint | | `FAILED` | Job failed — use **errors** endpoint | ## Scopes | Scope | Description | |-------|-------------| | `groups:read` | Read jobs | ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes | Code | Message | HTTP Status Code | |--------|-------|-------------------| | 2000 | e.g. job not found, invalid request | 400 | | 2001 | Internal server error | 500 | | 2003 | Invalid authorization | 401 | ## Endpoints - name: Promotions Suite x-displayName: Promotions Suite description: > **Promotions Suite** API enables financial institutions to programmatically create and manage audience user lists for targeted marketing campaigns. It supports asynchronous submission of user list upload jobs and provides status tracking for job progress and completion, allowing institutions to integrate audience creation directly into automated campaign and data workflows. **Note:** These endpoints require a **V1 OAuth token**. See Authentication API documentation for V1 token endpoint details. ## End-user benefits - Accelerates campaign readiness by enabling audience creation for targeted marketing campaigns - Improves reliability and control with clear status tracking and completion visibility - Streamlines operations by reducing manual effort and campaign setup errors ## Integration capabilities - **User List Upload**: Enqueue user lists for upload to Promotion Suite - **Status Tracking**: Monitor the status of user list uploads ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V1) | | `di_tid` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes | HTTP Status Code | Message | |------------------|---------| | 400 | Request does not meet specification; body includes **`userMessage`** | | 401 | Authorization error | | 429 | Too many concurrent user list jobs — retry later | | 500 | Unexpected server error | ## Endpoints - name: Audience x-displayName: Audience description: > **Audience** APIs enable financial institutions to manage audience user lists used for customer campaigns and targeting. It supports creating and retrieving user list metadata for files uploaded via SFTP, tracking processing status, user counts, and error reports, allowing institutions to monitor and manage campaign audience data securely and efficiently. ## End-user benefits - Tie each **SFTP-delivered** user-list file to **metadata** (`userlistName`, `userlistOperation`, description) so processing aligns with the intended list and operation. - See **processing state** at a glance via **`viewName=fileStatus`** (counts, job message) without re-reading the source file. - Investigate problems using **`viewName=fileErrorReport`** when the service exposes an error- report view for a file. ## Integration capabilities - Create and retrieve user list metadata for files uploaded via SFTP - Track processing status and user counts for uploaded files - Retrieve error reports for failed file uploads ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `transactionId` | UUID used to trace and correlate requests across services for debugging and logging. | ## Error codes | HTTP Status Code | Message | |------------------|---------| | 400 | Bad Request — invalid or missing parameters, headers, or body | | 500 | Internal Server Error — unexpected server failure | ## Endpoints - name: MX Platform x-displayName: Platform description: > **Platform** APIs are exposed as a **transparent passthrough** to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api) via the Candescent APIs Gateway. After OAuth V2 token validation and routing, the gateway forwards request headers, paths, query parameters, and payloads to MX and returns responses unchanged. The **MX Platform APIs** are MX’s core REST interface for aggregating and enhancing financial data across institutions. It covers **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, and related resources as documented by MX. For complete schemas and the full set of supported operations, see the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api) documentations. ## End-user benefits - Unified access to balances, transactions, and account context aggregated from external financial institutions. - End-to-end MX user lifecycle support, including connect, aggregation, and personalized financial experiences. - Data enhancement, including cleansing, categorization, and insights, provided through MX Platform pipeline. ## Integration capabilities - **Transparent passthrough** ensures that Platform headers, paths, query parameters, and payloads are forwarded to MX, and that HTTP status codes and responses are returned unchanged. - **Gateway controls** are applied by Candescent, including OAuth V2 `Bearer` token validation, spike arrest, and quota enforcement, before requests are forwarded to MX. - **MX routing** is configured by setting `ext_host` to the MX Platform host, such as `api.mx.com` (production) or `int-api.mx.com` (sandbox). - **Content negotiation** is supported through MX vendor-specific `Accept` headers, such as `application/vnd.mx.api.v1+json` for user list operations. Include `Accept-Version` header when MX documents version negotiation for an endpoint. ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | | `ext_host` | MX Platform upstream host (for example, `api.mx.com` (production) or `int-api.mx.com` (sandbox)). Required for gateway routing; stripped before forwarding to MX. | | `Accept` | MX vendor media type (for example, `application/vnd.mx.api.v1+json`). Required by MX; forwarded unchanged. | | `Content-Type` | `application/json`. Required by MX for POST and PUT requests; forwarded unchanged. | | `Accept-Version` | MX API version (for example, `v20250224`). Required by MX for version negotiation; forwarded unchanged. | ## Error codes **Candescent API Gateway** | Code | Message | HTTP Status Code | |--------|-------|-------------------| | CMN_90000 | Internal server error | 500 | | CMN_90001 | Client not authorized to access this resource | 401 | | CMN_90001 | Quota limit violation | 500 | | CMN_90002 | Spike limit violation | 500 | | CMN_90008 | Header correlationId is invalid | 400 | | CMN_90010 | Header correlationId is required | 400 | | CMN_90010 | Header ext_host is required | 400 | | CMN_90011 | Invalid or unsupported ext_host | 400 | | CMN_90018 | Invalid token | 400 | **MX Platform APIs** For detailed descriptions and error semantics, refer to the MX documentations: - [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/overview/errors) - [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/overview/errors) ## Endpoints - name: Real Time x-displayName: Real Time description: > **Real Time** APIs are exposed as a **transparent passthrough** to [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time) via the Candescent APIs Gateway. After OAuth V2 token validation and routing, the gateway forwards request headers, paths, query parameters, and payloads to MX and returns responses unchanged. The **MX Real Time APIs** are MX's specification for exchanging financial-institution data. It defines five core resources: **users**, **members**, **accounts**, **transactions**, and **holdings** that power **MX Real Time APIs** (synchronous CRUD operations). For complete schemas and the full set of supported operations, see the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time) documentation. ## End-user benefits - Provide current balances, transactions, and holdings from institution core systems to MX-powered digital experiences. - Keep user, member, and account data synchronized with MX pipelines. - Support real-time updates using a single **MX resource** model. ## Integration capabilities - **Transparent passthrough** ensures that Real Time headers, paths, query parameters, and payloads are forwarded to MX, and that HTTP status codes and responses are returned unchanged. - **Gateway controls** are applied by Candescent, including OAuth V2 `Bearer` token validation, spike arrest, and quota enforcement, before requests are forwarded to MX. - **MX routing** is configured by setting `ext_host` to the MX Real Time host such as `live.moneydesktop.com` (production) or `int-live.moneydesktop.com` (sandbox). - **Content negotiation** is supported through MX vendor-specific `Accept` headers, such as `application/vnd.moneydesktop.mdx.v5+xml` or `application/vnd.moneydesktop.mdx.v5+json` and include institution-scoped path segments as documented for each endpoint. ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | | `ext_host` | MX Real Time upstream host (for example, `live.moneydesktop.com` (production) or `int-live.moneydesktop.com` (sandbox)). Required for gateway routing; stripped before forwarding to MX. | | `Accept` | MX vendor media type (for example, `application/vnd.moneydesktop.mdx.v5+xml` or `application/vnd.moneydesktop.mdx.v5+json`). Required by MX; forwarded unchanged. | | `Content-Type` | MX vendor media type (for example, `application/vnd.moneydesktop.mdx.v5+xml` or `application/vnd.moneydesktop.mdx.v5+json`). Required by MX for POST and PUT requests; forwarded unchanged. | ## Error codes **Candescent API Gateway** | Code | Message | HTTP Status Code | |--------|-------|-------------------| | CMN_90000 | Internal server error | 500 | | CMN_90001 | Client not authorized to access this resource | 401 | | CMN_90001 | Quota limit violation | 500 | | CMN_90002 | Spike limit violation | 500 | | CMN_90008 | Header correlationId is invalid | 400 | | CMN_90010 | Header correlationId is required | 400 | | CMN_90010 | Header ext_host is required | 400 | | CMN_90011 | Invalid or unsupported ext_host | 400 | | CMN_90018 | Invalid token | 400 | **MX Real Time APIs** For detailed descriptions and error semantics, refer to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/#errors) documentation. ## Endpoints - name: Reporting x-displayName: Reporting description: > **Reporting** APIs are exposed as a **transparent passthrough** to the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/) via the Candescent APIs Gateway. After OAuth V2 token validation and routing, the gateway forwards request headers, paths, and query parameters to MX and returns responses unchanged. The **MX Reporting APIs** enable institutions to track changes to user data stored on the MX platform without querying each user individually. Daily change files can be requested by **date**, **resource**, and **action**, and are delivered as **Avro** files with embedded schema metadata for self-describing serialization. For complete schemas and the full set of supported operations, see the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/) documentation. ## End-user benefits - Track platform-wide data changes (transactions, accounts, and related resources) without querying individual users. - Enable operational reporting, reconciliation, and downstream analytics with daily MX change feeds. - Process structured Avro files with embedded schema metadata for reliable batch ingestion. ## Integration capabilities - **Transparent passthrough** ensures that Reporting headers, paths, and query parameters are forwarded to MX, and that HTTP status codes and Avro (or empty) responses are returned unchanged. - **Gateway controls** are applied by Candescent, including OAuth V2 `Bearer` token validation, spike arrest, and quota enforcement, before requests are forwarded to MX. - **MX routing** is configured by setting `ext_host` to the MX Reporting host such as `logs.moneydesktop.com` (production) or `int-logs.moneydesktop.com` (sandbox). - **Content negotiation** is supported through MX vendor-specific `Accept` headers, such as `application/vnd.mx.logs.v1+avro` and include institution-scoped path segments as documented for each endpoint. ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | | `ext_host` | MX Reporting upstream host (for example, `logs.moneydesktop.com` (production) or `int-logs.moneydesktop.com` (sandbox)). Required for gateway routing; stripped before forwarding to MX. | | `Accept` | MX vendor media type (for example, `application/vnd.mx.logs.v1+avro`). Required by MX; forwarded unchanged. | ## Error codes **Candescent API Gateway** | Code | Message | HTTP Status Code | |--------|-------|-------------------| | CMN_90000 | Internal server error | 500 | | CMN_90001 | Client not authorized to access this resource | 401 | | CMN_90001 | Quota limit violation | 500 | | CMN_90002 | Spike limit violation | 500 | | CMN_90008 | Header correlationId is invalid | 400 | | CMN_90010 | Header correlationId is required | 400 | | CMN_90010 | Header ext_host is required | 400 | | CMN_90011 | Invalid or unsupported ext_host | 400 | | CMN_90018 | Invalid token | 400 | **MX Reporting APIs** For detailed descriptions and error semantics, refer to the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/requirements#errors) documentation. ## Endpoints - name: SSO x-displayName: SSO description: > **SSO** APIs are exposed as a **transparent passthrough** to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/) via the Candescent APIs Gateway. After OAuth V2 token validation and routing, the gateway forwards request headers, paths, query parameters, and payloads to MX and returns responses unchanged. The **MX SSO APIs** are a RESTful interface for authenticating users on the MX platform. They provide endpoints to obtain widget URLs (for Personal Finance Management and Financial Insights experiences) and an `api_token` for initiating a Nexus API session. For complete schemas and the full set of supported operations, see the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/) documentation. ## End-user benefits - Launch MX widgets (for example, Mini Budgets and other PFM experiences) within a **webview** or **iframe** without exposing long-lived MX credentials. - Authenticate users on the MX platform using SSO-based sessions and short-lived redirect URLs. - Access Financial Insights and MoneyMap-style experiences through a consistent single sign-on authentication process. ## Integration capabilities - **Transparent passthrough** ensures that SSO headers, paths, query parameters, and payloads are forwarded to MX, and that HTTP status codes and responses are returned unchanged. - **Gateway controls** are applied by Candescent, including OAuth V2 `Bearer` token validation, spike arrest, and quota enforcement, before requests are forwarded to MX. - **MX routing** is configured by setting `ext_host` to the MX SSO host such as `sso.moneydesktop.com` (production) or `int-sso.moneydesktop.com` (sandbox). - **Content negotiation** is supported through MX vendor-specific `Accept` headers, such as `application/vnd.moneydesktop.sso.v3+xml` or `application/vnd.moneydesktop.sso.v3+json` and include institution-scoped path segments as documented for each endpoint. ## Required headers | Header | Description | |--------|-------------| | `Authorization` | `Bearer {token}` (OAuth V2) | | `correlationId` | UUID used to trace and correlate requests across services for debugging and logging. | | `ext_host` | MX SSO upstream host (for example, `sso.moneydesktop.com` (production) or `int-sso.moneydesktop.com` (sandbox)). Required for gateway routing; stripped before forwarding to MX. | | `Accept` | MX vendor media type (for example, `application/vnd.moneydesktop.sso.v3+xml` or `application/vnd.moneydesktop.sso.v3+json`). Required by MX; forwarded unchanged. | | `Content-Type` | MX vendor media type (for example, `application/vnd.moneydesktop.sso.v3+xml` or `application/vnd.moneydesktop.sso.v3+json`). Required by MX for POST request; forwarded unchanged. | ## Error codes **Candescent API Gateway** | Code | Message | HTTP Status Code | |--------|-------|-------------------| | CMN_90000 | Internal server error | 500 | | CMN_90001 | Client not authorized to access this resource | 401 | | CMN_90001 | Quota limit violation | 500 | | CMN_90002 | Spike limit violation | 500 | | CMN_90008 | Header correlationId is invalid | 400 | | CMN_90010 | Header correlationId is required | 400 | | CMN_90010 | Header ext_host is required | 400 | | CMN_90011 | Invalid or unsupported ext_host | 400 | | CMN_90018 | Invalid token | 400 | **MX SSO APIs** For detailed descriptions and error semantics, refer to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/api-requirements#http-status-codes) documentation. ## Endpoints paths: /oauth2/v1/token: post: tags: - OAuth V2 summary: Create OAuth Token (V2) description: > Issues an OAuth 2.0 access token for accessing current Candescent APIs. The returned access token must be included as a Bearer token in the Authorization header of all subsequent API requests. Requests must use `application/x-www-form-urlencoded` encoding and include a supported `grant_type`. **Use this endpoint to:** - Obtain a bearer token for current Candescent APIs, including Accounts, Alerts, Banking Images, Disclosures, Money Movement, and Transactions. - Request institution-level access when acting on behalf of a financial institution without an end-customer sign-in. - Sign in an end customer using their digital banking credentials. - Renew customer access without requiring re-authentication, using a refresh token from a prior sign-in. - Authorize subsequent Candescent API requests using the issued access token. **Behavior and capabilities:** - Supports the `client_credentials`, `password`, `authorization_code`, and `refresh_token` grant types, returning a JSON response that includes the access token and expiration details. - The `client_credentials` grant issues an institution-scoped access token without customer context; when using this model, the customer context must be provided on each API request. - The `password` grant issues a customer-scoped access token for a user of the digital banking application and includes a refresh token. - The authorization_code grant issues an access token using an authorization code issued by Apigee as part of an OpenID Connect (OIDC) flow. A refresh token is returned only if the `offline_access` scope was requested during authorization. - The `refresh_token` grant issues a new access token using a previously issued refresh token. - Requests must authenticate using the application’s client ID and client secret via HTTP Basic Authentication. - The target financial institution must be specified in the institutionId request header for grant types: `client_credentials`, `password`, and `authorization_code`. - Successful responses return a JSON payload that includes the access token and its expiration details. **Note:** For legacy APIs (Send Event, Destinations, Get FI Customer, Register User), use the [OAuth V1 token endpoint](/api/generated/create-access-token-v-1/) instead. operationId: createAccessTokenV2 parameters: - $ref: '#/components/parameters/ClientAuthBasicAuthorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionId in: header required: false x-conditionally-required: when: 'grant_type is client_credentials, password, or authorization_code' description: > Unique identifier of the financial institution. This parameter is **required** when `grant_type` is `client_credentials`, `password`, or `authorization_code`; otherwise, it is optional. schema: type: string example: '00016' requestBody: required: true description: > Request body containing the OAuth 2.0 grant type and required parameters. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccessTokenRequestV2' examples: ClientCredentialsGrantRequestV2: summary: ClientCredentialsGrantRequestV2 description: Example request body for the `client_credentials` grant type. value: grant_type: client_credentials PasswordGrantRequestV2: summary: PasswordGrantRequestV2 description: Example request body for the `password` grant type. value: grant_type: password username: userTest password: Test@123 AuthorizationCodeGrantRequestV2: summary: AuthorizationCodeGrantRequestV2 description: Example request body for the `authorization_code` grant type. value: grant_type: authorization_code code: 0CE0b2NA RefreshTokenGrantRequestV2: summary: RefreshTokenGrantRequestV2 description: Example request body for the `refresh_token` grant type. value: grant_type: refresh_token refresh_token: 5Kjn3DsFK4MwL138Tx0zA2xLsMSEoJRq responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AccessTokenResponseV2' examples: ClientCredentialsGrantResponseV2: summary: ClientCredentialsGrantResponseV2 description: >- Example response body for the `client_credentials` grant type. value: access_token: gBOL3RmYwc6HV5DGvde0ilFWwelg expires_in: '2591999' token_type: Bearer PasswordGrantResponseV2: summary: PasswordGrantResponseV2 description: Example response body for the `password` grant type. value: access_token: C9pZ6NvdteSuz367601awfLkoALZ expires_in: '2591999' refresh_token: 5Kjn3DsFK4MwL138Tx0zA2xLsMSEoJRq refresh_token_expires_in: '15551999' token_type: Bearer AuthorizationCodeGrantResponseV2: summary: AuthorizationCodeGrantResponseV2 description: >- Example response body for the `authorization_code` grant type. value: access_token: HDBmHkQayzuhiURWmX1MpOjrGE9c refresh_token: C50r4eny6ySPpQwL1y4O48GkCwj5ujKA token_type: Bearer expires_in: '1799' id_token: >- eyJ0eXAiOiJKV1QiLCJraWQiOiJpZFRva2VuUnNhS2V5IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI2MGZkMzQyOTE4OTA0NWEzOGQwNTQyNzQ1YThjYTFkYiIsImlzcyI6Imh0dHBzOi8vd3d3LmRpZ2l0YWxpbnNpZ2h0LmNvbSIsImlhdCI6MTc1OTk0NzMxMSwiZXhwIjoxNzU5OTQ3NjExfQ.FL2gdU9DmL_6x6iKX6eDls6LQsBnfQxCyBTvUUMoOcnXvxL1HfzovBMGbTIQZ6Tk94VNkPKqNik0z8hLx2TftKSP2M0fLyTBMFjNfODuZ4oMMwfoACTVhPoFXERrUJQg68kP5bsBGzUVPnjywiTI_TAeo2KA RefreshTokenGrantResponseV2: summary: RefreshTokenGrantResponseV2 description: Example response body for the `refresh_token` grant type. value: access_token: GNAW1ogAtmPQ1LGyL6UGrzUtgS6j expires_in: '2591999' refresh_token: iNLkBZGAuJA7SbWh5LhAKiJVZqQRnfxQ refresh_token_expires_in: '15551999' token_type: Bearer '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' x-position: 1 /oauth2/v1/revoke: delete: tags: - OAuth V2 summary: Revoke Access Token description: > Permanently revokes an access token or refresh token, immediately preventing it from being used to access Candescent APIs. Requests must use `application/x-www-form-urlencoded` encoding and include the token to be revoked in the `token` request field. **Use this endpoint to:** - End a customer session when the customer signs out. - Immediately stop API access for a specific access token. - Invalidate a refresh token so the customer cannot obtain new access tokens without re-authenticating. - Respond to tokens that may have been exposed or compromised. **Behavior and capabilities:** - Accepts either an access token or a refresh token in the `token` request parameter. - Revoking a refresh token also invalidates all access tokens issued from that refresh token. - Requests must authenticate using the application’s client ID and client secret via HTTP Basic Authentication. - Successful requests return an HTTP 204 - No Content status code. - Token revocation is permanent and cannot be undone. When access is required again, a new token must be requested from the [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/). operationId: revokeAccessTokenV2 parameters: - $ref: '#/components/parameters/ClientAuthBasicAuthorization' - $ref: '#/components/parameters/TransactionIdRequest' requestBody: required: true description: The request body that includes the access token to be revoked. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RevokeAccessTokenRequestV2' examples: RevokeAccessTokenRequestV2: summary: RevokeAccessTokenRequestV2 description: Example request body for revoking an access token. value: token: GNAW1ogAtmPQ1LGyL6UGrzUtgS6j responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' x-position: 2 /v1/auth-code: post: tags: - OAuth V2 summary: Generate Authorization Code description: > Generates an OAuth 2.0 authorization code for a signed-in user and a client application. The returned authorization code can be exchanged for an access token with the [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/) using the `authorization_code` grant type. Requests must use `application/x-www-form-urlencoded` encoding and include a valid **Bearer access token** in the `Authorization` header. **Use this endpoint to:** - Issue an authorization code after the user has authenticated and approved access to a third-party client application. - Specify API and resource scopes to be bound to the resulting access token when the code is exchanged. - Initiate the **OpenID Connect (OIDC)** authorization flow by providing `nonce`, `aud`, or `requested_scopes` parameters in the request. - Obtain a short-lived authorization `code` and `redirect_uri` to complete the OAuth 2.0 authorization code grant. **Behavior and capabilities:** - `scopes` parameter must be a **non-empty subset** of the client application's `allowed-scopes` Apigee attribute. - API and resource scopes are specified in `scopes`; OpenID Connect scopes (for example, `openid`, `profile`, `offline_access`) are specified in `requested_scopes`. - The client identified by `client_id` must differ from the client associated with the Bearer token; **self-authorization is not permitted**. **Note:** Call [Authorize Client](/api/generated/authorize-client-v-1/) first to retrieve approved scopes and authorization-flow settings for the client application. operationId: generateAuthorizationCodeV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/AuthCodeInstitutionId' requestBody: required: true description: > Request body containing the parameters required to generate an OAuth 2.0 authorization code. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AuthorizationCodeRequest' examples: AuthorizationCodeRequest: summary: AuthorizationCodeRequest description: Example request body for the authorization code request. value: client_id: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS scopes: 'institution-users:read,accounts:read,transactions:read' username: exapiretail institution_user_id: 40BC0EB5891C08D8E063C0A011ACE593 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AuthorizationCodeResponse' examples: AuthorizationCodeResponse: summary: AuthorizationCodeResponse description: Example response body for the authorization code response. value: redirect_uri: 'https://example.org' code: yYASO4BU '400': $ref: '#/components/responses/AuthCodeBadRequest' '401': $ref: '#/components/responses/AuthCodeUnauthorized' '403': $ref: '#/components/responses/AuthCodeForbidden' '500': $ref: '#/components/responses/AuthCodeInternalServerError' deprecated: false x-position: 4 /v1/client-authorization: post: tags: - OAuth V2 summary: Authorize Client description: > Returns the approved OAuth scopes, Apigee application identifier, and authorization-flow policy for a client application. This endpoint is typically called **before** generating an authorization code to determine which security, consent, and device requirements apply. Requests must use `application/x-www-form-urlencoded` encoding and include a valid **Bearer access token** in the `Authorization` header. **Use this endpoint to:** - Retrieve the OAuth scopes approved for a client application before starting the authorization code flow. - Determine whether **multi-factor authentication**, **user consent**, or **device registration** is required. - Validate that a client application is properly configured to use the `authorization_code` grant. - Drive the authorization user experience based on client-specific policy flags. **Behavior and capabilities:** - Returns approved scopes from the client application's `allowed-scopes`, Apigee application identifier (`appId`), and authorization flow policy details in `additional_info`. - The `additional_info` object includes `secondary_authentication_enabled`, `consent_enabled`, and `device_registration_enabled` flags that indicate required authorization steps. - The client application must be configured with the `authorization_code` grant type and a valid `allowed-scopes` attribute. **Note:** After reviewing the response, call [Generate Authorization Code](/api/generated/generate-authorization-code-v-1/) to issue the authorization code. operationId: authorizeClientV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/AuthCodeInstitutionId' requestBody: required: true description: > Request body containing the parameters required to authorize a client application and determine the scopes granted by the user. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AuthorizeClientRequest' examples: AuthorizeClientRequest: summary: AuthorizeClientRequest description: Example request body for the client authorization request. value: client_id: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AuthorizeClientResponse' examples: AuthorizeClientResponse: summary: AuthorizeClientResponse description: Example response body for the client authorization response. value: scopes: 'institution-users:read,accounts:read,transactions:read' appId: AuthCodeTestAppDeviceRegConsentEnabled additional_info: secondary_authentication_enabled: false consent_enabled: true device_registration_enabled: true '400': $ref: '#/components/responses/AuthCodeBadRequest' '401': $ref: '#/components/responses/AuthCodeUnauthorized' '403': $ref: '#/components/responses/AuthCodeForbidden' '500': $ref: '#/components/responses/AuthCodeInternalServerError' x-position: 3 /v1/oauth/token: post: tags: - OAuth V1 summary: Create OAuth Token (V1) description: > Issues an OAuth access token for accessing legacy Candescent APIs. The token is scoped to a specified financial institution and is used as a bearer token in subsequent Candescent APIs requests. Requests must use `application/x-www-form-urlencoded` encoding and specify a supported `grant_type`. **Use this endpoint to:** - Obtain a bearer token for legacy V1 APIs (Send Event, Destinations, Get FI Customer, Register User). - Authenticate a retail digital banking customer using the `password` grant with `username` and `password`, and receive customer context (`di_ficustomer`, `di_member_number`) in the response. The `password` grant is supported for **retail users only**. - Obtain institution-scoped access using the `client_credentials` grant type when customer credentials are not available or the request is not customer-specific. - Use the returned `access_token` to authorize subsequent Candescent API requests. **Behavior and capabilities:** - Supported grant types are `password` and `client_credentials`. - The `password` grant issues a customer-scoped token for **retail users only** and includes customer context in the response. Business users must use `client_credentials` or [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/). - The `client_credentials` grant issues an institution-scoped token without customer context. - Requests require HTTP Basic Authentication with the application's `client_id` and `client_secret`. - The specified financial institution (`di_fiid`) must be authorized for the application; unauthorized institutions return HTTP 401. - Access tokens expire after 30 minutes by default; the expiration duration can be configured per application. A new token request is required after expiration. - Successful requests return an XML payload containing the `access_token` and expiration information. **Note:** This endpoint may be deprecated in a future release. For most current APIs (Accounts, Alerts, Banking Images, Disclosures, Money Movement, Transactions), use the [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/). operationId: createAccessTokenV1 parameters: - $ref: '#/components/parameters/ClientAuthBasicAuthorization' - $ref: '#/components/parameters/DITidRequest' - name: di_fiid in: header required: true description: Unique identifier of the financial institution. schema: type: string example: '00016' - name: Content-Type in: header required: true description: >- Media type of the request body. Must be `application/x-www-form-urlencoded`. schema: type: string example: application/x-www-form-urlencoded requestBody: required: true description: > Request body containing the OAuth grant type and required parameters, including customer credentials when applicable. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccessTokenRequestV1' examples: ClientCredentialsGrantRequestV1: summary: ClientCredentialsGrantRequestV1 description: Example request body for the `client_credentials` grant type. value: grant_type: client_credentials PasswordGrantRequestV1: summary: PasswordGrantRequestV1 description: >- Example request body for the `password` grant type (retail users only). value: grant_type: password username: userTest password: Test@123 responses: '200': description: Success content: application/xml: schema: $ref: '#/components/schemas/AccessTokenResponseV1' examples: ClientCredentialsGrantResponseV1: summary: ClientCredentialsGrantResponseV1 description: >- Example response body for the `client_credentials` grant type. value: | 00016 6a41xIbec9T34KFTrq9XALuu1yzi 2591999 PasswordGrantResponseV1: summary: PasswordGrantResponseV1 description: >- Example response body for the `password` grant type (retail users only). value: | 00016 8fe733f4e27246908f92e8f7c0b96847 202510091 DAUhQMt0coKQwVV9AlXFBeGBrAdh 2591999 fTTLuUG7PORodGirMOcsvVuVjP5cypoA 2591999 '400': description: Bad Request content: application/xml: schema: $ref: '#/components/schemas/Status' example: > Form param 'grant_type' invalid USER_ERROR 90002 Form param 'grant_type' invalid '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/Status' example: > login credentials are not valid USER_ERROR 90001 login credentials are not valid '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/Status' example: > app does not support client credentials USER_ERROR 90001 app does not support client credentials '500': description: Internal Server Error content: application/xml: schema: $ref: '#/components/schemas/Status' example: > Internal Service Error - contact DI team SYSTEM_ERROR 90003 Internal Service Error - contact DI team x-position: 1 '/registration/v4/fis/{di_fiid}/fiCustomers': post: summary: Register New Customer description: > Registers a new customer for online banking via third party applications. This API provides the same registration process used in Candescent Digital Banking. **No scope required.** **Requires V1 OAuth Token** **Common Use Cases:** - Online banking vendors registering users after digital account opening - Mobile banking vendors with FIs using Candescent Digital Banking - Developers extending Candescent Digital Banking functionality **Required Personal Data:** | Field | Requirements | |-------|--------------| | First Name | Max 39 characters | | Last Name | Max 39 characters | | SSN | Exactly 9 digits | | Date of Birth | Format: yyyy-mm-dd | | Address | Street, City, State (2 chars for US), Zip, Country | | Phone Number | 10 digits | | Email | Max 64 characters | | Mother's Maiden Name | Max 128 characters | **Username Policy:** - Length: 8-20 characters (configurable: min 6, max 20) - Cannot be only numbers, can be all letters - Allowed special characters: `@$*_-=.!~` - No spaces allowed - Cannot match member number **Password Policy:** - Length: 6-32 characters (configurable) - Must contain characters from at least 2 of: Letters, Numbers, Special characters - No spaces allowed - Cannot be a substring of the username **Disclosures:** The API will make calls to the appropriate disclosure records on file for the FI. Registration will not complete without user acceptance of required disclosures. **Logging:** Performs global logging under RegistrationUser event with channel type TPV_API and user product THIRD_PARTY_REGISTRATION. **Request/Response Format:** The request body must be wrapped in a `FICustomer` root element. The response is always returned as `application/xml`. operationId: registerCustomerV4 tags: - Registration And Access parameters: - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: >- The financial institution from which the registration API is called. The scope of the Standard OAuth token will be restricted to this Financial Institution ID. required: true schema: type: string - $ref: '#/components/parameters/DITidRequest' - name: Content-Type in: header description: >- Content type of the request payload. Supported values are `application/json` and `application/xml`. required: false schema: type: string requestBody: description: >- Customer to register with DI. The body must be wrapped in a `FICustomer` root element containing the customer profile fields. content: application/json: schema: $ref: '#/components/schemas/RegisterCustomerRequest' application/xml: schema: $ref: '#/components/schemas/RegisterCustomerRequest' required: true responses: '200': description: >- User is successfully created. Returns the customer profile with the assigned GUID. content: application/json: schema: $ref: '#/components/schemas/RegisterCustomerResponse' application/xml: schema: $ref: '#/components/schemas/RegisterCustomerResponse' '400': description: > Bad Request. Common error codes: | Error Code | Condition | |------------|-----------| | 26340 | Could not create record in database | | 26214 | Too many destinations passed | | 20006 | Member number is not alphanumeric, length is 0 or >16, channel info not passed (valid value: TPV_API), SSN not found, first + last name >39 chars | | 220001 | SSN is not 9 digits | | 220002 | First name is more than 39 characters | | 220003 | Last name is more than 39 characters | | 220005 | Middle name is more than 39 characters | | 220006 | Primary email is more than 64 characters | | 220007 | Postal code not found in input | | 220008 | City not found in input | | 220009 | State not found, beyond 128 chars, or not 2 chars for US | | 220010 | Street/Address1 not found or more than 128 characters | | 220011 | Country not found in input | | 220012 | Mother's Maiden Name not found or more than 128 characters | | 220013 | Proper DOB not found in input | | 220014 | Phone number is missing | | 220015 | UserID must be 6-256 characters, allowed special characters: @$*_-=.!~, no spaces | | 220016 | Login ID and Member number cannot be the same | | 26201 | LoginID is already taken | | 220019 | Login should be within preconfigured range | | 220018 | Invalid user password | content: application/xml: schema: $ref: '#/components/schemas/Status' '409': description: > Conflict. Error codes: - 26330: User's online registration is already in progress (duplicate registration request) - 26331: User is already a registered user content: application/xml: schema: $ref: '#/components/schemas/Status' '500': description: 'Backend server does not respond, or some of the service is down.' content: application/xml: schema: $ref: '#/components/schemas/Status' x-codegen-request-body-name: body x-position: 1 '/v1/customers/{customerId}': get: summary: Get Customer Profile description: > Returns the customer's profile for the specified identifier. This includes personal details (name and demographics), login identifiers, user status and role, contact methods, postal addresses, and entitled customer relationships. OAuth 2.0 authentication is required to access this endpoint. If no query parameter is provided, the legacy customer ID is used by default. If a customer profile is needed based on the online login username, the `userIdType` query parameter should be set to `LOGIN_ID` (e.g., `?userIdType=LOGIN_ID`). operationId: getCustomerInformation tags: - Profile And Status parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: Unique identifier of the financial institution's customer schema: type: string example: 18fc507616c646048ea400138c8ac887 - name: userIdType in: query required: false description: > Specifies the format of the customerId provided in the path. Supported values: - `CUSTOMER_ID` - Unique customer identifier - `LOGIN_ID` - Customer’s login identifier schema: type: string enum: - CUSTOMER_ID - LOGIN_ID example: CUSTOMER_ID responses: '200': description: Customer profile returned successfully content: application/json: schema: $ref: '#/components/schemas/CustomerInformation' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Invalid path param code: UXU_10012 '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: Required role not present in JWT token code: UXU_10002 '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found code: UXU_88888 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: Internal server error code: UXU_99999 '503': description: Service unavailable content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 503 message: Error interacting with the service code: UXU_30001 x-position: 1 /v1/reports/e-statements: post: summary: Fetch Opt-in Data description: > Retrieves opt-in preferences for all accounts associated with a specified customer. Supports filtering by account type. operationId: getEstatementsReport tags: - Electronic Statements parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: description: Information needed for generating eStatement opt-in report required: true content: application/json: schema: $ref: '#/components/schemas/EStatementReportRequest' responses: '200': description: Retrieve preference successfully content: application/json: schema: $ref: '#/components/schemas/EStatementReportResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Required Correlation ID header is missing code: UXESTMT_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: No entitled account found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customer found for the specified id code: UXESTMT_88891 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXESTMT_30001 x-position: 1 '/v1/customers/{customerId}/contact-methods': get: summary: Fetch Contact Methods description: 'Fetch customer contact methods like SMS, Voice and Email.' operationId: getCustomerContactMethods tags: - Contact Info parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: Unique identifier of financial institution customer schema: type: string example: 18fc507616c646048ea400138c8ac887 - name: userIdType in: query required: false description: Unique identifier of user id type schema: type: string enum: - CUSTOMER_ID - LOGIN_ID example: CUSTOMER_ID responses: '200': description: Customer contact methods retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ContactMethodResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Request is missing a correlation ID header code: UXU_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found for the specified id code: UXU_10000 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXU_99998 x-position: 1 '/v1/customers/{customerId}:reset-password': put: summary: Send One-time Passcode description: >- Send a one-time passcode to a given customer for resetting their password operationId: resetPassword tags: - Registration And Access parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: Unique identifier of financial institution customer schema: type: string example: 18fc507616c646048ea400138c8ac887 requestBody: description: Information needed for sending reset password request required: true content: application/json: schema: $ref: '#/components/schemas/ResetPasswordRequest' responses: '204': description: Request to reset password sent successfully '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Request is missing a correlation ID header code: UXU_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found for the specified id code: UXU_10000 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXU_99998 x-position: 2 '/v1/customers/{customerId}:unlock-user': put: summary: Unlock Specified User description: Unlock the specified user without requiring a password reset operationId: unlockUser tags: - Registration And Access parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: Unique identifier of financial institution customer schema: type: string example: 18fc507616c646048ea400138c8ac887 responses: '204': description: User unlocked successfully '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Request is missing a correlation ID header code: UXU_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found for the specified id code: UXU_10000 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXU_99998 x-position: 3 '/v1/customers/{customerId}:contact-info': put: summary: Update Contact Info description: Update contact info operationId: updateContactInfo tags: - Contact Info parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: >- It can be a customer Id or login Id of the financial intitution customer schema: type: string example: 18fc507616c646048ea400138c8ac887 requestBody: description: Information needed for updating contact info required: true content: application/json: schema: $ref: '#/components/schemas/ContactInfo' responses: '204': description: Contact info updated successfully '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Required Correlation ID header is missing code: UXU_10008 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found for the specified id code: UXU_88888 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXU_99999 x-position: 2 '/v1/e-statements/{accountId}/disclosures': get: summary: Fetch Disclosure Information description: API to fetch disclosure information for the particular account Id operationId: getDisclosuresByAccountId tags: - Electronic Statements parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: accountId in: path required: true description: Unique identifier of financial institution customer account schema: type: string example: 18fc507616c646048ea400138c8ac887 responses: '200': description: Customer disclosures retrieved successfully content: application/json: schema: $ref: '#/components/schemas/EStatementDisclosureResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Request is missing a correlation ID header code: UXESTMT_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: No entitled customers found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: No entitled customers found for the specified id code: UXESTMT_88888 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXESTMT_30001 x-position: 2 /v1/e-statements/preference: put: summary: Update Account Electronic Statement Preferences description: > ### Before you call - **MultiStatement** — This API is available only when **MultiStatement** is configured **`true`** for the financial institution during the onboarding process (account-level statement preference). - **Disclosure** — The preference applies only when the required e-statement disclosure agreement exists for the **account** in the request (for example Multi-OLS where configured). If no disclosure is available for that account, the call may fail (for example **404**). - **Access token** — Obtain a **V2** OAuth 2.0 access token by calling **`POST /oauth2/v1/token`** (Authentication API — **Create V2 access token**). Grant types, required headers (for example `institutionId`, `transactionid`), and form body are defined on that operation. Send the token in the `Authorization` header as `Bearer `. See the [Authentication API reference](/api/generated/o-auth-v-2/). ### Behavior Updates whether account statements are delivered electronically or by mail for a **single** account. This preference is set per account, not for all accounts at once. operationId: updateStatementDeliveryPreference tags: - Electronic Statements parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: description: >- Payload specifying the user's preferred account statement delivery method (e-statement or mail) for a given account. required: true content: application/json: schema: $ref: '#/components/schemas/EStatementRequest' responses: '200': description: Statement preference updated successfully '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 400 message: Required Correlation ID header is missing code: UXESTMT_10007 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 401 message: User is not authorized to perform this operation '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 403 message: User does not have access '404': description: No entitled account found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 404 message: Disclosures name is not available for the given account ID code: UXESTMT_88891 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: status: 500 message: >- An unexpected error occurred when talking to the downstream service - service may be down code: UXESTMT_30001 x-position: 4 /v2/e-statements/user/preferences: put: summary: Update User Electronic Statement Preferences description: > ### Before you call - **MultiStatement** — This API is available only when the **MultiStatement** feature configured to `false` for the financial institution during the onboarding process. - **Disclosure** — The preference applies only where the applicable e-statement disclosure has been approved for the user. - **Access token** — Obtain a **V2** OAuth 2.0 access token by calling **`POST /oauth2/v1/token`** (Authentication API — **Create V2 access token**). Grant types, required headers (for example `institutionId`, `transactionid`), and form body are defined in that operation. Then pass the token in the `Authorization` header as `Bearer `. For full details, see the [Authentication API reference](/api/generated/o-auth-v-2/). ### Behavior Enables users to apply a unified statement delivery preference (online or mail) to **all** of their accounts. operationId: updateUserEStatementPreferencesV2 tags: - Electronic Statements parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: description: >- Payload specifying the user's preferred e-statement delivery method for all accounts. required: true content: application/json: schema: $ref: '#/components/schemas/EStatementPreferencesRequest' examples: default_example: $ref: '#/components/examples/EStatementPreferencesRequestExample' responses: '204': description: >- Preference applied to all accounts successfully. No content returned. '400': $ref: '#/components/responses/BadRequest1' '401': $ref: '#/components/responses/Unauthorized1' '403': $ref: '#/components/responses/Forbidden1' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError1' x-position: 3 '/v1/institution-users/{institutionUserId}': get: tags: - Profile And Status summary: Retrieve Institution User (V1) description: > Returns profile and relationship data for a single financial institution user. The response includes identity fields (name, email, username), user status, role, user type, associated institution customers, and login activity indicators. For business banking users, entitled location information may also be included. **Use this endpoint to:** - Retrieve a user by institution user ID, host user ID (member number), login ID, legacy user GUID, or authentication user ID (`authId`). - Include the institution user's contact methods, postal addresses, or sub-users by specifying them in the `$expand` query parameter using OData expressions. - Return bill pay credentials for the OFX (Open Financial Exchange) bill pay integration service by setting `retrieveBillPayCredentials=true`. This option is intended only for approved integrations and not for general profile lookups. **Behavior and capabilities:** - `userIdType` defaults to `INSTITUTION_USER_ID` when not specified. Set it to match the identifier provided in `institutionUserId`. `HOST_USER_ID` is not applicable to business banking users. - `$expand` accepts OData expressions. Supported segments include `contactMethods`, `postalAddresses`, and `subUsers`. `postalAddress` is also accepted as an alias for `postalAddresses`. - Setting `retrieveBillPayCredentials=true` requires the `institution-users-billpay:read` scope in addition to standard read access. Use this parameter only for the OFX (Open Financial Exchange) bill pay integration service; leave it as `false` (default) for typical profile lookups. operationId: getInstitutionUserV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionUserId in: path required: true description: > The identifier of the user to retrieve. Depending on `userIdType`, this may be an institution user ID, host user ID (member number), login ID, legacy user GUID, or authentication user ID (`authId`). When the caller completes an OpenID Connect (OIDC) authorization code flow, the authenticated user's ID is included in the access token. In this case, use `GET /v1/institution-users` (without a path parameter) to retrieve the current user's profile instead of providing this value. schema: type: string example: 40BC0EB5891C08D8E063C0A011ACE593 - $ref: '#/components/parameters/InstitutionUsersUserIdType' - name: $expand in: query required: false description: > OData `$expand` expression provided as a single string. Specify the navigation properties to include in the response using a comma-separated list. Supported segments include `contactMethods`, `postalAddresses`, and `subUsers`. `postalAddress` is also accepted as an alias for `postalAddresses`. `subUsers` is not supported for business banking users. Optional `$filter` clauses are supported on each `$expand` segment using OData syntax: `segmentName($filter=property eq value)`. Multiple segments can be combined using commas. String values must be enclosed in single quotes (for example, `'VOICE'`). Boolean values must use `true` or `false`. Multiple conditions can be combined using `and`, for example: `(validated eq true) and (protocol eq 'VOICE')`. **Supported filter properties by segment:** - `contactMethods` — `id`, `protocol`, `activated`, `enrolledDateTime`, `telephoneCountryCode`, `contactInfo`, `validated`, `host`, `primary`, `contactMethodType` - `postalAddresses` / `postalAddress` — `id`, `streetAddress1`, `streetAddress2`, `streetAddress3`, `city`, `state`, `postalCode`, `country`, `primary`, `postalAddressType` - `subUsers` — `institutionUserId`, `institutionId`, `institutionUserRole`, `institutionUserType`, `userId`, `userName`, `lastName`, `firstName`, `middleName`, `email`, `birthDate` **Filter expression examples:** - `contactMethods($filter=validated eq true)` - `contactMethods($filter=host eq true)` - `contactMethods($filter=(validated eq true) and (protocol eq 'VOICE'))` - `postalAddresses($filter=state eq 'CA')` - `subUsers($filter=lastName eq 'Taylor')` - `contactMethods($filter=host eq true),postalAddresses($filter=state eq 'CA')` schema: type: string example: 'contactMethods,postalAddresses' - name: retrieveBillPayCredentials in: query required: false description: > When set to `true`, includes bill pay login credentials in the response. This parameter is intended only for the OFX (Open Financial Exchange) bill pay integration service and requires the `institution-users-billpay:read` scope. Leave this parameter as `false` (default) for standard profile requests. schema: type: boolean default: false example: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionUser' examples: BasicUserProfile: summary: BasicUserProfile description: > Represents the default institution user profile without any optional `$expand` segments. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithBillPayCredentials: summary: UserProfileWithBillPayCredentials description: > Represents the user profile with bill pay credentials included via `retrieveBillPayCredentials=true`. Credentials are returned in `institutionCustomers[].additionalInfo`. value: institutionUserId: dac6eab34e9043c8b90ae512b7c9076e institutionId: '02137' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 544aa9bfa8cb45edb5d9c3cec5433a9c memberNumber: rpbpcf0001 hostLoginId: rpbpcf0001 customerType: RETAIL memberName: INSTITUTION USERS AUTOMATION USER additionalInfo: entry: - key: billPayLoginId value: cf0001bpuserid - key: billPayPassword value: psword - key: billPayNewLoginId value: 20201110DD001 userId: ac297870e8544038a65ee126c578131f userName: rpbpcf0001 lastName: Last firstName: First middleName: Middle fullName: INSTITUTION USERS AUTOMATION USER email: testmail@qa.digitalinsight.com failedLoginCount: 0 failedPasswordResetCount: 0 holdDateTime: '2019-08-01T12:25:59-07:00' userStatus: active: true additionalInfo: entry: - key: legacyUserGuid value: 544aa9bfa8cb45edb5d9c3cec5433a9c UserProfileWithContactMethods: summary: UserProfileWithContactMethods description: > Represents the user profile with `contactMethods` included via `$expand=contactMethods`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' contactMethods: - id: '6954010' protocol: SMS activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' contactInfo: '5105165330' validated: true - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithPostalAddresses: summary: UserProfileWithPostalAddresses description: > Represents the user profile with `postalAddresses` included via `$expand=postalAddresses`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 27Main streetAddress2: 1st Lane city: Mountain View state: CA postalCode: '94040' country: US primary: true id: '1' postalAddressType: UNKNOWN additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithSubUsers: summary: UserProfileWithSubUsers description: > Represents the user profile with entitled retail `subUsers` included via `$expand=subUsers`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Test firstName: exapiretailsub email: mike.holikov@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithAllExpand: summary: UserProfileWithAllExpand description: > Represents the user profile with all supported `$expand` segments: `contactMethods`, `postalAddresses`, and `subUsers`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Test firstName: exapiretailsub email: mike.holikov@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 27Main streetAddress2: 1st Lane city: Mountain View state: CA postalCode: '94040' country: US primary: true id: '1' postalAddressType: UNKNOWN contactMethods: - id: '6954010' protocol: SMS activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' contactInfo: '5105165330' validated: true - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 '400': $ref: '#/components/responses/InstitutionUsersError400' '401': $ref: '#/components/responses/InstitutionUsersError401' '403': $ref: '#/components/responses/InstitutionUsersError403' '404': $ref: '#/components/responses/InstitutionUsersError404' '500': $ref: '#/components/responses/InstitutionUsersError500' x-position: 2 '/v2/institution-users/{institutionUserId}': get: tags: - Profile And Status summary: Retrieve Institution User (V2) description: > Returns profile and relationship data for a single financial institution user, with FI-scoped encryption applied to personally identifiable information (PII). The response includes identity fields (name, email, username), user status, role, user type, associated institution customers, and login activity indicators. For business banking users, entitled location information may also be included. **Use this endpoint to:** - Look up a user by institution user ID, host user ID (member number), login ID, legacy user GUID, or authentication user ID (`authId`). - Include the institution user's contact methods, postal addresses, sub-users, and identification documents by specifying them in the `$expand` query parameter using OData expressions. - Retrieve FI-encrypted identification documents when the Apigee application includes the `institution-users:read_pii` scope. **Behavior and capabilities:** - `userIdType` defaults to `INSTITUTION_USER_ID` when not specified. Set it to match the identifier provided in `institutionUserId`. `HOST_USER_ID` is not applicable to business banking users. - `$expand` accepts OData expressions provided as a single string. Supported segments include `contactMethods`, `postalAddresses`, `subUsers`, and `identificationDocuments`. `postalAddress` is also accepted as an alias for `postalAddresses`. Optional `$filter` clauses are supported on each segment. - Expanding `identificationDocuments` requires the `institution-users:read_pii` scope. Apigee applications that request this segment without this scope receive a `403 Forbidden` error. - Identification document values are encrypted using the financial institution's encryption key (FI-scoped encryption). A deterministic error is returned if the FI encryption key is not provisioned. Vendors or third-party clients must work with the financial institution to obtain the necessary encryption key for decryption. - Bill pay credential retrieval is not supported in V2, see [Retrieve Institution User (V1)](/api/generated/get-institution-user-v-1/) for more information. operationId: getInstitutionUserV2 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionUserId in: path required: true description: > The identifier of the user to retrieve. Depending on `userIdType`, this may be an institution user ID, host user ID (member number), login ID, legacy user GUID, or authentication user ID (`authId`). schema: type: string example: 40BC0EB5891C08D8E063C0A011ACE593 - $ref: '#/components/parameters/InstitutionUsersUserIdType' - name: $expand in: query required: false description: > OData `$expand` expression provided as a single string. Specify the navigation properties to include in the response using a comma-separated list. Supported segments include `contactMethods`, `postalAddresses`, `subUsers`, and `identificationDocuments`. `postalAddress` is also accepted as an alias for `postalAddresses`. `subUsers` is not supported for business banking users. Expanding `identificationDocuments` requires the `institution-users:read_pii` scope. Optional `$filter` clauses are supported on each `$expand` segment using OData syntax: `segmentName($filter=property eq value)`. Multiple segments can be combined using commas. String values must be enclosed in single quotes (for example, `'VOICE'`). Boolean values must use `true` or `false`. Multiple conditions can be combined using `and`, for example: `(validated eq true) and (protocol eq 'VOICE')`. **Supported filter properties by segment:** - `contactMethods` — `id`, `protocol`, `activated`, `enrolledDateTime`, `telephoneCountryCode`, `contactInfo`, `validated`, `host`, `primary`, `contactMethodType` - `postalAddresses` / `postalAddress` — `id`, `streetAddress1`, `streetAddress2`, `streetAddress3`, `city`, `state`, `postalCode`, `country`, `primary`, `postalAddressType` - `subUsers` — `institutionUserId`, `institutionId`, `institutionUserRole`, `institutionUserType`, `userId`, `userName`, `lastName`, `firstName`, `middleName`, `email`, `birthDate` - `identificationDocuments` — `id`, `maskedId`, `issuerState`, `issuerCountry`, `issuedDate`, `expiryDate`, `identificationDocumentType` **Filter expression examples:** - `contactMethods($filter=validated eq true)` - `contactMethods($filter=host eq true)` - `contactMethods($filter=(validated eq true) and (protocol eq 'VOICE'))` - `postalAddresses($filter=state eq 'CA')` - `subUsers($filter=lastName eq 'Taylor')` - `identificationDocuments($filter=identificationDocumentType eq 'SSN')` - `contactMethods($filter=host eq true),postalAddresses($filter=state eq 'CA')` - `contactMethods($filter=host eq true),identificationDocuments($filter=identificationDocumentType eq 'SSN')` schema: type: string example: identificationDocuments responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionUserV2' examples: BasicUserProfile: summary: BasicUserProfile description: > Represents the default institution user profile without any optional `$expand` segments. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithContactMethods: summary: UserProfileWithContactMethods description: > Represents the user profile with `contactMethods` included via `$expand=contactMethods`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' contactMethods: - id: '6954010' protocol: SMS activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' contactInfo: '5105165330' validated: true - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithPostalAddresses: summary: UserProfileWithPostalAddresses description: > Represents the user profile with `postalAddresses` included via `$expand=postalAddresses`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 27Main streetAddress2: 1st Lane city: Mountain View state: CA postalCode: '94040' country: US primary: true id: '1' postalAddressType: UNKNOWN additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithSubUsers: summary: UserProfileWithSubUsers description: > Represents the user profile with entitled retail `subUsers` included via `$expand=subUsers`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Test firstName: exapiretailsub email: mike.holikov@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 UserProfileWithIdentificationDocuments: summary: UserProfileWithIdentificationDocuments description: > Represents the user profile with `identificationDocuments` included via `$expand=identificationDocuments`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 identificationDocuments: - id: >- oijy4+4VXexnWs6+yhEv18pcwgPBbTjuSlvaC2uvGg8yZ/bbCohGxlST17X7/XO8EFo3LhqKTYdLXufAvqBb5MUnp36dkIgMKkWGMG/9PjyfWG2GKaHX99Tmh0oLkFAfo6UMPPzU/A+x3QnfLDNOgM/OP3ZcStcIlo0+FjBvFS0Ko/gUcVC2zNUqCv20haX+ZevPbU2X5UfZf6ZQYnt9umL5dvNtUvAEpuQZaaXmjVueUfjJJUZHeR6d/R4z8gK7rhXmqLgAGZXDYG7yQ2w3bI1uM6o3iXKvgCkOGnO3lVwPQK3PtGn5oj1zTjyXO5FdZEI9qsHPcHiqX7agnCY3wQ== maskedId: '*****6789' identificationDocumentType: SSN UserProfileWithAllExpand: summary: UserProfileWithAllExpand description: > Represents the user profile with all supported `$expand` segments: `contactMethods`, `postalAddresses`, `subUsers`, and `identificationDocuments`. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'John, Smith A' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Test firstName: exapiretailsub email: mike.holikov@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: exapiretail lastName: John firstName: Smith middleName: A fullName: 'John, Smith A' email: rk185407@example.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 27Main streetAddress2: 1st Lane city: Mountain View state: CA postalCode: '94040' country: US primary: true id: '1' postalAddressType: UNKNOWN contactMethods: - id: '6954010' protocol: SMS activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' contactInfo: '5105165330' validated: true - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 identificationDocuments: - id: >- e7DHXaJD2Ju90M/GKET5P26Dykp/m7m4r0KWRi4vPC9W6j5MVzn8WSvFouNFeefb1LgtcIzCMSfl138brDmuQqpQeMkBvAvqDgvUxI+Picu123PeoetESfwZwvPJ7s/pVR4mBUmDIAF6pWUMNJS0jFkFmf9d1l5cV3G/5biScUDwyaV7EoVxgccAdZQKSRuLjcS5gM+GMvUUHpQXHBHvKnzzij2MZEXdsj6y5zdk2uY8Xd44sKC1cgQfkP5aI8n/z9oOyx16ofGirv/GPrYFEcKKQTXMVtViOLyoTUoSFM4JjtlWPaBj+HxYelPTXkpOI0PrcNEPpfn4bmHPU8h1tA== maskedId: '*****6789' identificationDocumentType: SSN '400': $ref: '#/components/responses/InstitutionUsersError400' '401': $ref: '#/components/responses/InstitutionUsersError401' '403': $ref: '#/components/responses/InstitutionUsersError403' '404': $ref: '#/components/responses/InstitutionUsersError404' '500': $ref: '#/components/responses/InstitutionUsersError500' x-position: 3 '/v1/user-status/{institutionUserId}': get: tags: - Profile And Status summary: Retrieve User Status description: > Returns account activity and registration status for a financial institution user. The response includes status indicators (active, locked, on hold, registered, and related flags), as well as login and hold metadata in `additionalInfo`. When the requested user is a primary user, status details for associated sub-users are also included. **Use this endpoint to:** - Look up a user by institution user ID, host user ID (member number), login ID, or customer ID (`CUSTOMER_ID`). - Determine whether a user can sign in or requires intervention (for example, locked, on hold, or pending registration). - Retrieve status details for entitled sub-users when querying a primary user. **Behavior and capabilities:** - `userIdType` is **required**. Set it to match the identifier provided in `institutionUserId`. Supported values include `INSTITUTION_USER_ID`, `HOST_USER_ID`, `LOGIN_ID`, and `CUSTOMER_ID`. `HOST_USER_ID` is not applicable to business banking users. - Requires the `institution-users:read` scope. This endpoint returns status fields only. Use [Retrieve Institution User (V1)](/api/generated/get-institution-user-v-1/) or [Retrieve Institution User (V2)](/api/generated/get-institution-user-v-2/) for full profile data (contact methods, postal addresses, and related attributes). operationId: getUserStatusV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionUserId in: path required: true description: > The identifier of the user to retrieve. Depending on `userIdType`, this may be an institution user ID, host user ID (member number), login ID, or customer ID (`CUSTOMER_ID`). schema: type: string example: 40BC0EB5891C08D8E063C0A011ACE593 - name: userIdType in: query required: true description: > Set this parameter to match the identifier type provided in `institutionUserId`. Supported values: - `INSTITUTION_USER_ID` — Candescent institution user identifier - `HOST_USER_ID` — Host system member number (retail users only; not applicable to business banking users) - `LOGIN_ID` — User login identifier - `CUSTOMER_ID` — Legacy product user GUID (legacy customer identifier) schema: type: string enum: - INSTITUTION_USER_ID - HOST_USER_ID - LOGIN_ID - CUSTOMER_ID example: LOGIN_ID responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/UserStatus1' examples: PrimaryUser: summary: PrimaryUser description: > Represents the status of a primary user when the response does not include any entitled sub-users. value: institutionUserId: 40337C3126481119E063C0A011AC572D active: true additionalInfo: failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-09T16:07:24-07:00' PrimaryUserWithSubUser: summary: PrimaryUserWithSubUser description: > Contains status details for a primary user, including entitled retail sub-users in the response. value: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 active: true additionalInfo: failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 active: true reset: true additionalInfo: failedLoginCount: 1 failedPasswordResetCount: 0 Subuser: summary: Subuser description: > Contains status details for an entitled retail sub-user, including the parentInstitutionUserId. value: institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 parentInstitutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 active: true reset: true additionalInfo: failedLoginCount: 1 failedPasswordResetCount: 0 lastLoginDateTime: '2025-10-09T09:36:19-07:00' '400': $ref: '#/components/responses/InstitutionUsersError400' '401': $ref: '#/components/responses/InstitutionUsersError401' '403': $ref: '#/components/responses/InstitutionUsersError403' '404': $ref: '#/components/responses/InstitutionUsersError404' '500': $ref: '#/components/responses/InstitutionUsersError500' x-position: 4 '/bankingservices/v2/fis/{fiId}/fiCustomers/{fiCustomerId}': get: summary: Get Profile Information description: > Retrieves digital banking profile information for a customer. This endpoint provides comprehensive customer data from the Digital Banking system. **Requires V1 OAuth Token** **Data Retrieved:** - Contact information (name, phone, email) - User credentials (login ID, member number) - User status (Active, On Hold, Locked, etc.) - Product information (Digital Banking, Mobile, Bill Pay) - Channel login information and status **Customer ID Types:** Use the `fiCustomerIdType` query parameter to specify the ID type: - `GUID` (default) - Internal system ID - `MEMNUMBER` - Financial institution's core system ID - `LOGINID` - Customer's digital banking login ID - `HOSTID` - Host system identifier operationId: getCustomerV2 tags: - Profile And Status parameters: - $ref: '#/components/parameters/DITidRequest' - $ref: '#/components/parameters/OAuthV1Authorization' - name: Date in: header description: >- The date and time that the message was sent. The expected format is UTC, e.g., `1994-11-05T13:15:30Z`. schema: type: string - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided, the IP address logged will be extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request (e.g., if a mobile device is used, the IP address should be that of the mobile device, rather than a back-end service). schema: type: string default: ' ' - name: user-agent in: header description: >- Identifies the application and the platform making the request. The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]`. schema: type: string default: ' ' - name: offering_id in: header description: >- Uniquely identifies the name of the client app making the request. When not provided, this is derived based on a property held against the application within Apigee. schema: type: string default: ' ' - name: Accept in: header description: >- Optional. The data format the client expects to receive in the response. Currently the only supported value application/xml. In the future we will support application/json. If no value is provided, the default is application/xml. schema: type: string default: ' ' - name: fiId in: path description: the ID assigned to the financial institution. required: true schema: type: string - name: fiCustomerId in: path description: >- the ID for the requested customer. This may be specified with various values, depending on the fiCustomerIDType parameter. The default is to send the internal ID. required: true schema: type: string - name: Cache-Control in: header description: >- Optional. Valid value is no-cache. If the caller includes this header value, CBS will empty the cache for the user (regardless of its age) and go to the database to get a fresh copy of the data. schema: type: string default: ' ' - name: fiCustomerIdType in: query description: >- Optional. Valid values are GUID (default, internal ID), MEMNUMBER, LOGINID, and HOSTID. If not specified, the value for fiCustomers in the URL must the be the internal GUID. If the value is MEMNUMBER, the value for fiCustomers in the URL must be the ID value known to the financial institution's core system. If the value is LOGINID the value is the customer's digital banking login ID. schema: type: string default: Internal ID - name: operation in: query description: Optional. Supported values are getPFMUser. schema: type: string responses: '200': description: OK content: application/xml: schema: $ref: '#/components/schemas/FICustomer' application/json: schema: $ref: '#/components/schemas/FICustomer' '*/*': schema: $ref: '#/components/schemas/FICustomer' '400': description: >- Bad Request if fiCustomerIdType is provided other than the allowable Id types content: application/xml: schema: $ref: '#/components/schemas/Status' application/json: schema: $ref: '#/components/schemas/Status' '*/*': schema: $ref: '#/components/schemas/Status' '401': description: Unauthorized Access content: application/xml: schema: $ref: '#/components/schemas/Status' application/json: schema: $ref: '#/components/schemas/Status' '*/*': schema: $ref: '#/components/schemas/Status' '404': description: >- FICustomer does not exists in the Informix database with the given customer Id content: application/xml: schema: $ref: '#/components/schemas/Status' application/json: schema: $ref: '#/components/schemas/Status' '*/*': schema: $ref: '#/components/schemas/Status' '500': description: >- Internal server error due to Null pointer issues/Infomix DB configuration/availability/FI level configurations/Coherence cache availability issues content: application/xml: schema: $ref: '#/components/schemas/Status' application/json: schema: $ref: '#/components/schemas/Status' '*/*': schema: $ref: '#/components/schemas/Status' '503': description: >- Circuit breaker (for DB) open or (if throttling is enabled) throttle limit reached content: application/xml: schema: $ref: '#/components/schemas/Status' application/json: schema: $ref: '#/components/schemas/Status' '*/*': schema: $ref: '#/components/schemas/Status' x-position: 5 /v1/accounts: get: tags: - Accounts summary: List Accounts description: > Returns a list of financial accounts that the authenticated user is entitled to access. The response may include deposit, loan, investment, and related account types, subject to entitlement checks, data masking rules, and response field selection based on the requested view and OAuth scopes. The endpoint supports optional filtering and cross‑account handling, and provides additional grouping and paging capabilities for Business Banking users with access to multiple locations. **Use this endpoint to:** - Display an account summary or dashboard for a user - Retrieve account metadata for navigation, selection, or downstream workflows - Support retail and business banking use cases, including joint and cross‑user accounts **Behavior and capabilities:** - Results are returned only for accounts the user is entitled to access. - Sensitive fields, such as account numbers, may be masked unless appropriate scopes are provided. - Optional OData filtering can be applied to narrow results by account attributes. - Cross‑account retrieval can be enabled or disabled to control inclusion of joint or cross‑user accounts. - For Business Banking users with multiple locations, accounts can be grouped by institution customer (location) with group‑level paging support. operationId: listAccountsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/AccountsInstitutionCustomerIdList' - name: $apply in: query required: false x-conditionally-required: when: > Business Banking user with multiple institution customers when `institutionCustomerId` is omitted; requires `$skipGroups` and `$topGroups` on the same request x-mutually-exclusive: - institutionCustomerId description: > Groups account results by institution customer for Business Banking users with multiple locations. Only `groupBy(customer)` is supported. When used, both `$skipGroups` and `$topGroups` are required to enable location‑level paging. schema: type: string enum: - groupBy(customer) example: groupBy(customer) - name: $skipGroups in: query required: false x-conditionally-required: when: > Business Banking user with multiple institution customers when `institutionCustomerId` is omitted; requires `$apply=groupBy(customer)` and `$topGroups` on the same request x-mutually-exclusive: - institutionCustomerId description: > Group‑level offset for Business Banking location paging. Indicates how many institution‑customer groups to skip before returning results. Must be used with `$apply=groupBy(customer)` and `$topGroups`. Valid values range from 0 to the total number of locations minus one. schema: type: integer format: int32 example: 1 - name: $topGroups in: query required: false x-conditionally-required: when: > Business Banking user with multiple institution customers when `institutionCustomerId` is omitted; requires `$apply=groupBy(customer)` and `$skipGroups` on the same request x-mutually-exclusive: - institutionCustomerId description: > Specifies the maximum number of institution‑customer groups (business locations) to return in the response when grouped paging is enabled. This parameter is used only with `$apply=groupBy(customer)` and must be provided together with `$skipGroups`. Currently, only a value of `1` is supported. schema: type: integer format: int32 example: 1 - $ref: '#/components/parameters/AccountsViewName' - $ref: '#/components/parameters/AccountsCrossAccount' - name: $filter in: query required: false description: > OData `$filter` expression to narrow the account list. Supported operators include `eq`, `ne`, `gt`, `ge`, `lt`, `le`, `and`, `or`, `contains`, `tolower`, and `toupper`. String values must be enclosed in single quotes (for example, `'DEPOSIT'`). Multiple conditions can be combined using `and` or `or`. **Supported filter properties:** - `id` — account identifier - `name` — account nickname (corresponds to `nickName` in the response) - `accountNumber` — display account number - `category` — account category; see `AccountCategory` schema for allowed values - `type` — account type; see `DIAccountType` schema for allowed values **Examples:** - `category eq 'DEPOSIT'` - `type eq 'CHECKING'` - `name eq 'Business Checking'` - `(category eq 'DEPOSIT') and (type eq 'CHECKING')` Invalid filters return a validation error (for example **ACC_00005**). schema: type: string example: category eq 'DEPOSIT' - $ref: '#/components/parameters/AccountsAdditionalFields' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AccountsResponse' examples: ListAccountsResponse: summary: ListAccountsResponse description: > Example `Accounts` payload with `totalGroupCount` (Business Banking grouped paging) and two sample accounts—`DEPOSIT` (checking) and `LOAN` (credit card). value: totalGroupCount: 7 accounts: - id: FJLqiQAy1lvswlZXcu9rA0mD8ohakVblGGbi-f-r29A institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Business OFX Checking nickName: Business OFX Checking accountNumber: '0101' category: DEPOSIT type: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking currentBalance: currencyCode: USD amount: 443572 availableBalance: currencyCode: USD amount: 501306.06 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000022254' - id: waIhcoBqn0X8Fy-gpM72V7-2eYmJP9aQ1hjXcxlRpvU institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Simulator Credit Card nickName: Simulator Credit Card accountNumber: '0110' category: LOAN type: value: CREDIT_CARD_LOAN fiRawAccountType: 64 fiAccountType: 64 description: Credit Card currentBalance: currencyCode: USD amount: 0 availableBalance: currencyCode: USD amount: 0 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: false transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000049999' nextPaymentAmount: currencyCode: USD amount: 50 nextPaymentDate: '2026-03-15' minimumPayment: currencyCode: USD amount: 50 '400': $ref: '#/components/responses/AccountsError400' '401': $ref: '#/components/responses/AccountsError401' '403': $ref: '#/components/responses/AccountsError403' '404': $ref: '#/components/responses/AccountsError404' '415': $ref: '#/components/responses/AccountsError415' '500': $ref: '#/components/responses/AccountsError500' x-position: 1 '/v1/accounts/{accountId}': get: tags: - Accounts summary: Get Account by ID description: > Returns detailed information for a specific financial account that the authenticated user is entitled to access. The response includes account balances, status indicators, and available actions, and is subject to entitlement checks, data masking rules, and response field selection based on the requested view and OAuth scopes. This endpoint supports both retail and business banking scenarios and allows optional scoping for Business Banking users with access to multiple locations. **Use this endpoint to:** - Display detailed account information for a selected account - Retrieve current balances, account status, and permitted actions - Support retail and business banking workflows, including joint and cross‑user account access **Behavior and capabilities:** - The account is returned only if the authenticated user is entitled to access it. - Sensitive fields, such as account numbers, may be masked unless appropriate scopes are provided. - The fields included in the response depend on the requested response view and client entitlements. - For Business Banking users, results can be scoped to a specific institution customer (location) when applicable. - Cross‑account handling may include joint or cross‑user accounts based on request configuration. operationId: getAccountByIdV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: accountId in: path required: true description: The unique identifier for the account. schema: type: string example: 1MdoKqlxGAoU2JE0gdJAAX07sTfTza2_GrbmbflBFYo - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/AccountsInstitutionCustomerId' - $ref: '#/components/parameters/AccountsViewName' - $ref: '#/components/parameters/AccountsCrossAccount' - $ref: '#/components/parameters/AccountsAdditionalFields' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Account' examples: GetAccountByIdResponse: summary: GetAccountByIdResponse description: | Example single `Account` for **Checking** (`DEPOSIT`) value: id: LucHSRuNSd8zWXLh_x0o9XuPyoAfObcCKKvpEh_J4WM institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Simulator Business Checking nickName: Simulator Business Checking accountNumber: 0099 category: DEPOSIT type: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking currentBalance: currencyCode: USD amount: 4554.24 availableBalance: currencyCode: USD amount: 4554.24 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000016555' '400': $ref: '#/components/responses/AccountsError400' '401': $ref: '#/components/responses/AccountsError401' '403': $ref: '#/components/responses/AccountsError403' '404': $ref: '#/components/responses/AccountsError404' '415': $ref: '#/components/responses/AccountsError415' '500': $ref: '#/components/responses/AccountsError500' x-position: 2 '/v1/customers/{customerId}:accounts': get: tags: - Accounts summary: Retrieve Customer Accounts with Transactions description: > Returns a unified view of a customer’s accounts with embedded transactions by aggregating data from the Accounts and Transactions APIs. This endpoint is primarily intended for use during new customer registration to retrieve and associate existing account and transaction data. The request will fail if the service cannot retrieve transactions for any account. To ensure transactions are returned for all accounts, the isHistoryEnabled flag must be enabled on each account, and cross-account retrieval must be disabled or unavailable to the retail user. The response includes account identifiers and classifications, status and balance details, regulatory and contribution attributes where applicable, ownership and account holder information, and transactions nested within each account. This endpoint is available for **retail** customers only. **Use this endpoint to:** - Retrieve all accounts and their transactions in a single call - Access balances, status, and account classification details - View ownership and account holder information - Simplify client logic by using backend aggregation **Behavior and capabilities:** - Retrieves accounts in a single call to the Accounts service, then invokes the Transactions service once per account to enrich each with transaction data - Embeds transaction data within each account object for simplified client consumption - Requires a token with permission to access both account and transaction data, and validates that the customerId matches the authenticated user's customerId - Returns 200 OK with aggregated data or 204 No Content when no accounts are found operationId: getCustomerAccountsTransactionsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - name: customerId in: path required: true description: > Unique identifier for the institution customer associated with the financial institution. schema: type: string example: 8fe733f4e27246908f92e8f7c0b96847 - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CustomerAccountsResponse' examples: RetrieveCustomerAccountsWithTransactionsResponse: summary: RetrieveCustomerAccountsWithTransactionsResponse description: > Example response for a customer with two accounts and transactions. value: - accountHidden: false accountNumber: 00000019199 accountStatus: open: false closed: true negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false accountType: diAccountType: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking balance: availableBalance: amount: 12.35 currencyCode: USD currentBalance: amount: 10 currencyCode: USD category: DEPOSIT description: General Checking diAccountType: 0 fiAccountTypeDesc: Checking fiRawAccountType: 1 fiAccountType: 1 historyAllowed: true id: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 lastDepositAmount: amount: 125 currencyCode: USD micrNumber: 191000XXXXXXX nickName: General Checking rdcAccountValue: 0 ownershipType: PRIMARY regDLimits: maxTransferCount: 6 maxCheckCount: 3 maxRegDCount: 9 accountTransaction: - accountId: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: 91HEabYOBIjKaWD0GYiP6cO2agDueZM7hlzNU_jKNeo persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true - accountId: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 amount: amount: 14006.5 currencyCode: USD creditTransaction: true description: Return of Goods2 effectiveDate: '2026-05-02' fiId: '00016' id: tQ_o7HFC-TCrsdOLTbNnSuNF2WFT23RxKgEoeIB1uFg persistentTnum: true transactionDate: '2026-05-02' transactionNumber: '5' transactionType: RETURN_OF_GOODS pending: true - accountHidden: false accountNumber: '1316' accountStatus: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false accountType: diAccountType: CREDIT_CARD_LOAN fiRawAccountType: 64 fiAccountType: 64 description: Credit Card balance: availableBalance: amount: 4779.8 currencyCode: USD currentBalance: amount: 10320.2 currencyCode: USD category: LOAN description: Visa diAccountType: 0 fiAccountTypeDesc: Credit Card fiRawAccountType: 64 fiAccountType: 64 historyAllowed: true id: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs interestPriorYearToDate: amount: 0 currencyCode: USD nickName: Visa rdcAccountValue: 0 ownershipType: PRIMARY accountTransaction: - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: A5h9zHkDOMQ8aNppXFDq72OK6PY3FGtitPCb3M-APXs persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 14006.5 currencyCode: USD creditTransaction: true description: Return of Goods2 effectiveDate: '2026-05-02' fiId: '00016' id: MVKmU2samTHjf8r-dwJXB78xIpeRURgexL0d8_8_3c8 persistentTnum: true transactionDate: '2026-05-02' transactionNumber: '5' transactionType: RETURN_OF_GOODS pending: true '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error1' example: status: 400 code: UXU_10011 message: >- JWT token institution customers id is not matching customer id path param '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error1' example: status: 403 code: UXU_10002 message: Required role not present in JWT token '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error1' example: status: 404 code: UXU_88888 message: No entitled customers found '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error1' example: status: 500 code: UXU_30001 message: Error interacting with the service '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error1' example: status: 503 code: UXU_30001 message: Error interacting with the service x-position: 3 '/bankingservices/v2/fis/{di_fiid}/fiCustomers/{di_ficustomer}/accounts': get: tags: - Accounts summary: List Accounts (Legacy) description: > Retrieves account information for a specified financial institution customer, including supported account types, account details, balances, and account status indicators. This endpoint supports both Retail and Business Banking and returns the set of accounts available to the requesting user based on role, entitlements, and configuration. **Use this endpoint to:** - Return the list of accounts associated with the specified customer, optionally including accounts for related users when enabled via query parameters and supported by the financial institution's configuration. - Support both Retail and Business Banking callers. Retail requests apply retail-specific eligibility checks, while Business Banking requests apply business role handling and optional validation logic based on the financial institution's configuration and request parameters. - Optionally include export-formatted account numbers when requested. **Behavior and capabilities:** - Account data is retrieved through the account aggregation pipeline and may be served from cache when available. - Before returning a successful response, display rules and field visibility controls are applied based on the financial institution's configuration. - If no accounts are available for an entitled caller, the service returns a 204 No Content response. operationId: listAccountsLegacyV2 parameters: - $ref: '#/components/parameters/OAuthV1Authorization' - $ref: '#/components/parameters/DITidRequest' - name: intuit_IFS_userType in: header required: false description: > Specifies the user role for the request. Required for retail sub-users (ENTITLED) and all business users (PRIMARY_ADMIN, SECONDARY_ADMIN, BUSINESS_USER). When set to ENTITLED, the intuit_authid and intuit_ifs_onbehalfofuser headers are required. When set to SECONDARY_ADMIN or BUSINESS_USER, the intuit_authid header is required. schema: type: string enum: - ENTITLED - PRIMARY_ADMIN - SECONDARY_ADMIN - BUSINESS_USER example: ENTITLED - name: intuit_authid in: header required: false description: > Unique identifier for the authenticated institutional user associated with the account. Required when intuit_IFS_userType is ENTITLED (retail sub-user), SECONDARY_ADMIN, or BUSINESS_USER. Optional for PRIMARY_ADMIN. schema: type: string example: dff28930d50c4e7c8c7d5b265aff122 - name: intuit_IFS_onBehalfOfUser in: header required: false description: > Identifier of the primary retail user (member number) on whose behalf a sub-user is making the request. Only applicable for retail sub-user requests (intuit_IFS_userType is ENTITLED). schema: type: string example: '1234567890' - name: di_fiid in: path required: true description: > Identifier of the financial institution to which the account belongs. schema: type: string example: '00016' - name: di_ficustomer in: path required: true description: > Unique identifier of the customer associated with the account. For retail users, this is the legacy GUID. For business users, this is the institution customer ID (business location). schema: type: string example: 8fe733f4e27246908f92e8f7c0b96847 - name: getCrossAccts in: query required: false description: > Indicates whether account data for related users should be included in the account retrieval response. When set to true and supported by the financial institution’s configuration, any related-user accounts not returned by default are retrieved and combined with the primary user’s accounts in a single response. schema: type: boolean default: false example: true - name: getExportAcctNum in: query required: false description: > Indicates whether an export-formatted account number should be included in the response. When set to true and supported by the financial institution’s configuration, each account includes an exportAccountNumber field suitable for use with financial software such as Quicken or QuickBooks. schema: type: boolean default: false example: true - name: validateLocationStatus in: query required: false description: > Supported only for Business Banking. When set to true and supported by the financial institution’s configuration, the business TIN is validated with the host system prior to fetching account data. schema: type: boolean default: false example: true responses: '200': description: Success content: application/xml: schema: $ref: '#/components/schemas/Accounts' examples: ListAccountsLegacyResponse: summary: ListAccountsLegacyResponse description: > Sample accounts response with a deposit account, loan account, and investment account. value: | TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM 77b142adea5747cb90a880d225c217c6 00016 1803757274-19022-1 Personal Checking Personal Checking 19032 19032 19032 19032 19032 19032 19032 DEPOSIT CHECKING 1 1 Checking PRIMARY USD 512840.10 USD 12340.10 USD 987.66 OPEN true false false false false false false false false false false true true true true true true 6 3 9 011053826 USD 0.00 USD 0.00 true false 19032 105890765 BPID c68jZFQJjZyZgZhcT/RL1un9E5qyzaRXa0N8JPNwhBo= 19032^1 0 190000XXXXXXX USD 125.00 105890761K19032 19032 19032 WV_taVXT8CRAJ1Pw2eH0Fx-nDn-hzvLdRSEuinFZBn0 77b142adea5747cb90a880d225c217c6 00016 401K Account 401K Account 12093 12093 12093 12093 12093 INVESTMENT RETIREMENT_401K 8 8 401K PRIMARY USD 123583.67 USD 123583.67 OPEN true false false false false false false false false false false true false false true true true USD 0.00 USD 0.00 true false 12093 EXCLUDE_ALL 105890765 12093^8 105890761C12093 12093 OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs 77b142adea5747cb90a880d225c217c6 00016 Visa Visa 1316 1316 1316 1316 1316 1316 LOAN CREDIT_CARD_LOAN 64 64 Credit Card PRIMARY USD 10320.20 USD 4779.80 OPEN true false false false false false false false false false false true true true true true true USD 0.00 USD 0.00 true false 1316 105890765 1316^64 105890761L1316 1316 USD 9530.80 2025-03-25-07:00 USD 675.26 '204': description: No Content '400': description: Bad Request content: application/xml: schema: $ref: '#/components/schemas/Status' example: statusMessage: There was an error executing the request errorInfo: - errorType: USER_ERROR errorCode: '25099' errorMessage: Required HTTP Headers were not found '404': description: Not Found content: application/xml: schema: $ref: '#/components/schemas/Status' example: statusMessage: There was an error executing the request errorInfo: - errorType: SYSTEM_ERROR errorCode: '20009' errorMessage: 'PrincipalEndUser:Data not found.' '500': description: Internal Server Error content: application/xml: schema: $ref: '#/components/schemas/Status' example: statusMessage: There was an error executing the request errorInfo: - errorType: SYSTEM_ERROR errorCode: '25401' errorMessage: Account type ATYP not present in the account data. '503': description: Service Unavailable content: application/xml: schema: $ref: '#/components/schemas/Status' example: statusMessage: There was an error executing the request errorInfo: - errorType: SYSTEM_ERROR errorCode: '28002' errorMessage: Circuit Breaker Status is Open x-position: 4 /v1/transactions: get: tags: - Transactions summary: List Account Transactions description: > Retrieve transaction history for a specified account. It returns a record of financial actions performed by a customer, including deposits, withdrawals, transfers, and payments. The endpoint supports date-based filtering, pending and future transaction retrieval, and business‑banking–specific scoping, while providing detailed transaction metadata suitable for display, reconciliation, and downstream processing. **Use this endpoint to:** - Retrieve a complete history of posted, pending, and future‑dated transactions for a customer account - Filter transaction results by a specific date range to support statements, reporting, and reviews - Present transaction activity for customer‑facing displays such as account history and statements - Access transactions scoped to a specific business banking location - Obtain detailed transaction metadata to support reconciliation, auditing, and downstream processing **Behavior and capabilities:** - Retrieves transactions for a specified accountId, including both posted and pending items, with pending status explicitly indicated for each transaction. - Supports filtering transactions by an inclusive date range using startDate and endDate, provided in ISO 8601 format (YYYY-MM-DD), with validation to ensure a valid range. - Applies a financial‑institution–configured default date range when no date parameters are supplied. - Enables retrieval of future‑dated transactions when retrieveFutureTransactions is set to true, overriding any provided endDate based on institution configuration. - Returns comprehensive transaction details—including transaction identifiers, dates, descriptions, memos, amounts, currency codes, transaction types, statuses, fee details, and optional image metadata for checks and deposit slips when available. - Supports Business Banking scoping via institutionCustomerId. operationId: listAccountTransactionsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: institutionCustomerId in: query required: false description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 8fe733f4e27246908f92e8f7c0b96847 - name: accountId in: query required: true description: >- Unique identifier of the account associated with the requested transactions. schema: type: string example: d3XlGnYR06hizNVfcOMORXBHqDm6MZZP2-NUwGsgMpk - name: startDate in: query required: false description: > Inclusive beginning of the transaction date range, specified as an ISO 8601 calendar date (YYYY-MM-DD). If omitted, the service applies institution defaults: when endDate is provided, startDate is derived from it using the FI‑configured default range (adjusted when retrieveFutureTransactions is enabled). If both dates are omitted, the service builds a default range ending in the near future based on FI configuration. When both startDate and endDate are supplied, startDate must be on or before endDate; invalid values or ranges result in error TXN_10001. schema: type: string format: date example: '2026-01-01' - name: endDate in: query required: false description: > Inclusive end of the transaction date range, specified as an ISO 8601 calendar date (YYYY-MM-DD). When retrieveFutureTransactions is true, any supplied endDate is ignored and the service sets the end date to today plus an FI‑configured number of future days. If endDate is omitted but startDate is provided, the service derives the end date using FI defaults, adjusting to a future‑days window when applicable. When both dates are supplied, endDate must be on or after startDate; invalid values or ranges result in error TXN_10001. schema: type: string format: date example: '2026-05-01' - name: retrieveFutureTransactions in: query required: false description: > When set to true, overrides the effective endDate to today plus an FI‑configured number of future days; any provided endDate is ignored. The calculated end date is used for all subsequent date‑range logic, including defaulting startDate when omitted. schema: type: boolean default: false example: true - name: $skip in: query required: false description: > OData‑style parameter that specifies the number of transactions to omit from the start of the date‑range result set before $top is applied. May be used alone or together with $top. The value must be a non‑negative integer; negative values are rejected with TXN_10005. If $skip is greater than or equal to the number of transactions in range, the result set is empty. Pagination links are included when used with $top. Pagination errors may result in TXN_20006. Processing order: date range → $skip / $top → $filter → isCreditTransaction schema: type: integer minimum: 0 example: 10 - name: $top in: query required: false description: > OData‑style parameter that limits the maximum number of transactions returned after $skip is applied. May be used alone or together with $skip. If the value is below the FI‑configured minimum transactions per request, it is raised to that minimum. Pagination links are included when used with $skip. Pagination errors may result in TXN_20006. Processing order: date range → $skip / $top → $filter → isCreditTransaction schema: type: integer minimum: 0 example: 10 - name: $filter in: query required: false description: > OData `$filter` expression evaluated in memory on each transaction after the date range is applied and after `$skip` / `$top` paging. Processing order: date range → `$skip` / `$top` → `$filter` → `isCreditTransaction`. Supported operators include `eq`, `ne`, `gt`, `ge`, `lt`, `le`, `and`, `or`, `contains`, `tolower`, and `toupper`. String values must be enclosed in single quotes (for example, `'transfer'`). Multiple conditions can be combined using `and` or `or`. The `contains` function performs a case-insensitive match on `description`. **Supported filter properties:** - `id` — transaction identifier - `description` — transaction description text from the source system (free-form string) **Examples:** - `contains(description, 'transfer')` - `description eq 'Return merchandise to customer'` - `id eq 'n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4'` - `contains(description, 'debit') and id ne 'dwLbcmXN4AZnVqN7XP-SA1eHqCeNYmT8C2yITbmRx7M'` Invalid or unsupported expressions return **TXN_20005**. schema: type: string example: 'contains(description, ''transfer'')' - name: isCreditTransaction in: query required: false description: > Optional filter that narrows results based on a transaction’s credit or debit designation. When set to true, only credit transactions are returned; when set to false, only debit (non‑credit) transactions are returned. When omitted, no credit/debit filtering is applied and both types are returned, subject to date range, $skip / $top, and $filter. schema: type: boolean example: true - name: additionalFields in: query required: false description: > When set to true, the service retrieves the institution's time zone along with the transaction data and includes a top‑level additionalInfo object in the response containing timeZone (time zone ID), timeZoneOffset (GMT offset in whole hours). If the time‑zone lookup fails, the request fails entirely. schema: type: boolean default: false example: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/TransactionsResponse' examples: ListAccountTransactionsResponse: summary: ListAccountTransactionsResponse description: Example payload for a list of transactions. value: transactions: - id: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '71' transactionDate: '2026-04-26' effectiveDate: '2026-04-26' memo: Return of Goods description: Return merchandise to customer amount: currencyCode: USD amount: 6011 type: RETURN_OF_GOODS isCreditTransaction: true isExportable: true isPending: true additionalInfo: entry: - key: ofxTid value: >- 20260426000000[-10:HWT]*6011.00*600**Return of Goods1 - key: dcTid value: 20260426*601100*600**Return of Goods1 - key: ccTid value: 04/26/2026*6011.00*600**Return of Goods1 - id: dwLbcmXN4AZnVqN7XP-SA1eHqCeNYmT8C2yITbmRx7M institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '15' transactionDate: '2026-04-06' effectiveDate: '2026-04-06' description: Automatic Debit4 amount: currencyCode: USD amount: 220 type: AUTOMATIC_DEBIT isCreditTransaction: false isExportable: true isPending: true additionalInfo: entry: - key: ofxTid value: >- 20260406000000[-10:HWT]*-220.00*10**Automatic Debit4 - key: dcTid value: 20260406*-22000*10**Automatic Debit4 - key: ccTid value: 04/06/2026*220.00*10**Automatic Debit4 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_10001 message: >- The date(s) provided could not be parsed, or represented an invalid range. '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_11002 message: >- The authentication token that was sent in the request is invalid. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_11003 message: The authentication provided does not authorize this request. '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_90000 message: Server cannot handle this request '415': description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_99988 message: >- Server can only handle JSON request. Other media types are not supported '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: TXN_88888 message: Internal validation error. x-position: 1 /v1/banking-activities: post: tags: - Banking Activities summary: Search Banking Activities description: > Searches and returns a page of banking activity records for the institution. The service scans institution-scoped activity data and returns matching banking activity records in batches, supporting pagination and fine-grained filtering across users, events, and request context attributes. The request body must specify a time window using `startTime` and `endTime`. All requests are validated against institution context, input rules, and service-configured limits before execution. **Use this endpoint to:** - Retrieve banking activity events for an institution within a specific time range. - Page through large result sets using `pageSize` and `nextPageToken`. - Scope activity results to specific users by providing `userId` with a required `userIdType`. - Filter activity events by event identifiers, event type, user type, and other request attributes. - Apply advanced, column-level filtering using logical AND / OR groupings via `additionalFilters`. - Limit returned data to specific attributes using `requestedAttributes` to reduce response size. - Continue a previously started query using an opaque `nextPageToken`. **Behavior and capabilities:** - The `startTime` must be strictly earlier than `endTime`, and the time window must fall within the service’s configurable maximum lookback period (90 days). - All filters, identifiers, tokens, and attribute names are validated according to service rules, including printable-ASCII enforcement where applicable. - Results are paginated, with pageSize values limited to a configurable maximum (1000 by default). - If a query completes successfully but matches no records, the service responds with HTTP 204 and an empty body. - Responses are sent with gzip content coding. operationId: searchBankingActivitiesV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: Accept-Encoding in: header required: false description: > Optional. Defaults to `application/gzip` if omitted. When specified, the value must be one of the supported encodings: `application/gzip`, `gzip`, `deflate`, or `*`; any other value fails request validation. Responses are sent with gzip content encoding. schema: type: string example: application/gzip requestBody: required: true description: > Request payload that defines the time range and optional filters for searching and paginating banking activity records. content: application/json: schema: $ref: '#/components/schemas/SearchCriteria' examples: BasicCriteria: summary: BasicCriteria description: > Retrieve banking activities for a date range only (`startTime`, `endTime`) value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' NextPageToken: summary: NextPageToken description: > Continue a paginated search using `nextPageToken` from a prior response. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' nextPageToken: >- MDAwMTZ8OTIyMzM3MDI1OTU0NDY2NjIzMXxhNGRmZmUxMy00MjVjLTExZjEtOGI0MS04MjVjZGQxMzg0ZmI EventIds: summary: EventIds description: Filter by specific event identifiers. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 eventIds: - login - logout - mfaChallenge EventType: summary: EventType description: Filter by specific event type. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 eventType: system RetailUser: summary: RetailUser description: >- Filter for a specific retail user (`userType`, `userId`, `userIdType`). value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 userType: retail userId: exapiretail userIdType: loginId CompanyId: summary: CompanyId description: Filter by business `companyId`. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 companyId: '3546785467' BusinessUser: summary: BusinessUser description: > Filter for a specific business user (`userType`, `userId`, `userIdType`). value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 userType: business userId: exapibbprimary userIdType: loginId Filters: summary: Filters description: Advanced filtering criteria. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 additionalFilters: condition: and filters: - attributeId: channel criteria: equals value: MOBILE - attributeId: reqctx_featurename criteria: like value: login FiltersAndSubFilters: summary: FiltersAndSubFilters description: Advanced filtering criteria with nested sub-filters. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 additionalFilters: condition: and filters: - attributeId: channel criteria: equals value: MOBILE - attributeId: source criteria: notEqual value: AndroidBizBankingApp subFilters: - condition: or filters: - attributeId: reqctx_featurename criteria: like value: login - attributeId: reqctx_featurename criteria: like value: logout RequestedAttributes: summary: RequestedAttributes description: Limit returned fields per record via `requestedAttributes`. value: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' requestedAttributes: - channel - errorMessage - ReqCtx_canonicalId - ReqCtx_featureName - member - ReqCtx_loginId - ReqCtx_sessionId - source responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SearchResponse' examples: SearchBankingActivitiesResponse: summary: SearchBankingActivitiesResponse description: | Example response for a search banking activities. value: nextPageToken: >- MDAwMTZ8OTIyMzM3MDI1OTUyMTk3NjkxN3w3OGMyYTdjMC00MjkxLTExZjEtYTkyZC00Mjk4NzNmY2Y2OWI count: 3 bankingActivities: - reqctx_canonicalid: '00016' channel: ONLINE memo: addenda source: Web type: ACH Payment action: PAYMENT reqctx_userproduct: BBPAYMENTS payeehold: 'false' reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' reqctx_userid: db1174dac62011eeafee42010a31a08f reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20d0f4d6-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayee reqctx_customertype: BUSINESS accounttype: BUSINESS_CHECKING reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US glappid: BBP result: Success reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f nickname: id reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.331-07:00' amount: '0.01' accountnumber: '1234' payeename: rec clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 reqctx_bcindex: '16' accountnumberhashed: >- 03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4 routingnumber: '121000358' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 payeeid: 9c17ad77-600c-45c2-94a1-818a6060558e reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' - reqctx_canonicalid: '00016' paymentdate: 'Mon, Apr 27, 2026' fromaccounthashed: >- d1c6c03bf6184a1e101aaf12705405e2e92bd33d35d00a4ab9e4f3c2811b5598 fee: '9.0' channel: ONLINE source: Web type: ACH Payment payeecount: '1' action: ADD reqctx_userproduct: BBPAYMENTS reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' fromaccounttype: BUSINESS_CHECKING reqctx_userid: db1174dac62011eeafee42010a31a08f taxidname: Loc One reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20cd4b55-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayment reqctx_customertype: BUSINESS reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US transactiontype: COMMERCIAL_CCD glappid: BBP result: Success paymenttiming: ONCE reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f confno: 7RF6BSK4 reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.307-07:00' amount: '0.01' clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 fromaccount: '*2114' achcompanyid: '4534643645' reqctx_bcindex: '16' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 comment: SD_3 reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' - reqctx_canonicalid: '00016' reqctx_ipaddress: 100.68.131.161 eventid: alertSent reqctx_customertype: BUSINESS reqctx_callinghost: 100.68.131.161 accounttype: ACCOUNT channel: EMAIL reqctx_bcid: '00016' type: BBPTRNSAPRVNT layoutid: '34211' reqctx_locale: en_US glappid: MAI result: Success reqctx_appid: BBPaymentsApp reqctx_offeringid: BBPaymentsApp reqctx_request_userid: c1d214fd101711ea92b6005056a0456e member: c1d214fd101711ea92b6005056a0456e subscriptionid: NA email: chaitra.m@ncr.com timestamp: '2026-04-27T16:59:28.591-07:00' accountnumber: NA clientversion: 4.0.5 reqctx_usertype: PRIMARY reqctx_userproduct: BBPaymentsApp reqctx_featurename: Events reqctx_id: b0955235-da74-490c-aa40-15551da2547b reqctx_transid: b0955235-da74-490c-aa40-15551da2547b reqctx_loginid: chaitrabu eventdate: '2026-04-27' reqctx_userid: c1d214fd101711ea92b6005056a0456e reqctx_bcindex: '16' accountnumberhashed: >- 20ef0f0c8d0eea98772412cea9b3b92612e3e53cb5e59152b5703165f56e8a53 guid: 20600d88-4295-11f1-b264-f6df74297e1a reqctx_useragent: Apache-HttpClient/5.4.4 (Java/17.0.4.1) eventtype: Audit reqctx_region: qa reqctx_requesturi: >- /mais/v1/fis/00016/fiCustomers/c1d214fd101711ea92b6005056a0456e/events reqctx_onbehalfof: '00016' reqctx_sessionid: '0' reqctx_homeid: '00016' reqctx_request_fiid: '00016' '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BAS_10001 message: The given start date must be earlier than end Date. '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BAS_10102 message: Authentication token sent in the request is invalid. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BAS_10101 message: Full authentication was not provided in the request. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BAS_99999 message: Internal server error x-position: 1 /v1/banking-images: get: tags: - Images summary: List Banking Images description: > Returns a list of available scanned banking document images based on the provided query parameters, such as account, image type, and date criteria. The response includes image identifiers and associated metadata that can be used to view, download, or print individual images using the image retrieval endpoint. **Use this endpoint to:** - Display a list of available banking images for a customer or account - Retrieve image metadata for transaction history or statement views - Obtain image IDs needed to retrieve individual images **Behavior and capabilities:** - Results are returned only for images the authenticated user is entitled to access. - The response includes metadata and identifiers, not image data. - Image availability and returned fields may vary based on entitlements and account configuration. - Images are filtered based on document type and applicable date criteria. **Supported Image Types:** - CHECK, DEPOSIT_CHECK, and DEPOSIT_SLIP images require the `transactionDate` query parameter. - CC_STATEMENT, DOCUMENT, and STATEMENT images require **both** `statementStartDate` and `statementEndDate` (inclusive range, `YYYY-MM-DD`). operationId: listBankingImagesV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/BankingImagesInstitutionCustomerId' - $ref: '#/components/parameters/BankingImagesAccountId' - $ref: '#/components/parameters/BankingImagesImageType' - $ref: '#/components/parameters/BankingImagesTransactionDate' - $ref: '#/components/parameters/BankingImagesImageIdentifier' - name: transactionImageNumber in: query required: false description: > The check number or deposit slip reference associated with the host transaction. Together with `transactionDate`, this value is used to select the corresponding transaction from the host transaction results **unless** identifier‑based matching is enabled for the institution and `imageIdentifier` is used to resolve the transaction instead. When `imageType` is `CHECK` and this parameter is provided, the value must contain **numeric digits only**. Non‑numeric values result in a validation error (`BIS_00009`). For standard check retrieval without identifier‑based matching, this parameter is required together with `transactionDate`. For `DEPOSIT_SLIP` and `DEPOSIT_CHECK`, `imageIdentifier` is required; this parameter may still be forwarded to downstream image retrieval systems where applicable. **Not applicable** to statement‑based image types (`STATEMENT`, `CC_STATEMENT`, `DOCUMENT`); omit this parameter for those requests. schema: type: string maxLength: 30 example: '201' - name: statementStartDate in: query required: false x-conditionally-required: when: 'imageType is STATEMENT, CC_STATEMENT, or DOCUMENT' description: > Inclusive **start** date (`YYYY-MM-DD`) of the statement or document date range when `imageType` is `STATEMENT`, `CC_STATEMENT`, or `DOCUMENT`. **Required together with `statementEndDate`** for these image types. Both dates must be non‑blank and parseable (`BIS_00018` if either is missing or empty). The start date must be on or before `statementEndDate` (`BIS_00019` if not). **Not applicable** to transaction‑based image types (`CHECK`, `DEPOSIT_SLIP`, `DEPOSIT_CHECK`); omit this parameter for those requests. schema: type: string format: date example: '2026-01-01' - name: statementEndDate in: query required: false x-conditionally-required: when: 'imageType is STATEMENT, CC_STATEMENT, or DOCUMENT' description: > Inclusive **end** date (`YYYY-MM-DD`) of the statement or document date range when `imageType` is `STATEMENT`, `CC_STATEMENT`, or `DOCUMENT`. **Required together with `statementStartDate`** for these image types. Both dates must be non‑blank and parseable (`BIS_00018` if either is missing or empty). The end date must be on or after `statementStartDate` (`BIS_00019` if not). **Not applicable** to transaction‑based image types (`CHECK`, `DEPOSIT_SLIP`, `DEPOSIT_CHECK`); omit this parameter for those requests. schema: type: string format: date example: '2026-01-31' - name: statementPreview in: query required: false description: > Optional flag applicable when `imageType` is `STATEMENT`, `CC_STATEMENT`, or `DOCUMENT`. If this parameter is **omitted**, no preview flag is passed to the downstream statement image service. When set to **true**, the service includes the downstream query parameter `Preview=true` on the FICDS statement image request, enabling **statement list preview** behavior for integrations that require it. When set to **false**, the preview flag is not added. **Not applicable** to transaction‑based image types (`CHECK`, `DEPOSIT_SLIP`, `DEPOSIT_CHECK`); omit this parameter for those requests. schema: type: boolean example: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/BankingImages' examples: TransactionImages: summary: TransactionImages description: > Example list payload for transaction-based images (CHECK, DEPOSIT_CHECK, and DEPOSIT_SLIP). value: bankingImage: - transactionImageNumber: '2301' transactionDate: '2021-01-01' amount: currencyCode: USD amount: 0.11 id: '232' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI accountNumber: '2300000001' accountType: CHECKING imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT - data: aW1hZ2UgY2hlY2sgYmFjayAyMzAxIGpwZWc= type: JPEG view: BACK - transactionImageNumber: '2302' transactionDate: '2021-01-01' amount: currencyCode: USD amount: 0.12 id: '233' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI accountNumber: '2300000001' accountType: CHECKING imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMiBqcGVn type: JPEG view: FRONT - data: aW1hZ2UgY2hlY2sgYmFjayAyMzAyIGpwZWc= type: JPEG view: BACK StatementImages: summary: StatementImages description: > Example list payload for statement-based images (STATEMENT, CC_STATEMENT, or DOCUMENT). value: bankingImage: - statementDescription: March Checking Statement statementDate: '2021-03-31' id: '40826' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: nydyvcDZDs_T7Znf1jkNNaaRILY00hctdMF8XdOM_Hs accountNumber: '192340000' accountType: CHECKING imageType: STATEMENT imageInfoItems: imageInfo: - data: c3RhdGVtZW50IG1hcmNoIDIwMjEgNDA4MjYgcGRm type: PDF - statementDescription: April Checking Statement statementDate: '2021-04-30' id: '40827' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: nydyvcDZDs_T7Znf1jkNNaaRILY00hctdMF8XdOM_Hs accountNumber: '192340000' imageType: STATEMENT imageInfoItems: imageInfo: - data: c3RhdGVtZW50IGFwcmlsIDIwMjEgNDA4MjcgcGRm type: PDF '204': description: No Content '400': $ref: '#/components/responses/BankingImagesError400' '401': $ref: '#/components/responses/BankingImagesError401' '403': $ref: '#/components/responses/BankingImagesError403' '404': $ref: '#/components/responses/BankingImagesError404' '415': $ref: '#/components/responses/BankingImagesError415' '500': $ref: '#/components/responses/BankingImagesError500' x-position: 1 '/v1/banking-images/{bankingImageId}': get: tags: - Images summary: Get Banking Image by ID description: > Retrieves and returns a specific scanned banking document image—such as a check, deposit slip, statement, or other supported document—using the provided image identifier. The response includes the image data and related metadata required to view, download, or print the document. **Use this endpoint to:** - Display a specific check image for transaction verification - Retrieve a deposit slip image for auditing or record‑keeping purposes - Download and view statements or documents in PDF format **Behavior and capabilities:** - The image is returned only if the authenticated user is entitled to access it. - The response contains the full image data along with descriptive metadata. - A single banking image may include multiple image representations, such as multiple pages or different document views. - The image format returned depends on the type of banking document requested. **Response Format:** - CHECK, DEPOSIT_CHECK, and DEPOSIT_SLIP images are returned as base64‑encoded TIFF data. - CC_STATEMENT, DOCUMENT, and STATEMENT images are returned as base64‑encoded PDF data. - The imageInfoItems.imageInfo array may contain one or more image representations, such as multiple pages or front and back views. operationId: getBankingImageByIdV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: bankingImageId in: path required: true description: Unique identifier of the banking image to be retrieved. schema: type: string example: '233' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/BankingImagesInstitutionCustomerId' - $ref: '#/components/parameters/BankingImagesAccountId' - $ref: '#/components/parameters/BankingImagesImageType' - $ref: '#/components/parameters/BankingImagesTransactionDate' - $ref: '#/components/parameters/BankingImagesImageIdentifier' - name: statementDate in: query required: false x-conditionally-required: when: 'imageType is STATEMENT, CC_STATEMENT, or DOCUMENT' description: > Applicable when `imageType` is `STATEMENT`, `CC_STATEMENT`, or `DOCUMENT`. Identifies the **statement calendar date** (`YYYY-MM-DD`) to send to the downstream FICDS statement image service when retrieving a single statement or document. When **omitted**, the downstream request may also omit `statementDate`, allowing the host to resolve the document using the statement identifier alone. If this parameter is **present**, it must be non‑blank and parseable as a date; otherwise the request fails (`BIS_00022` for empty values, `BIS_00003` for invalid or unparseable dates). **Not applicable** to transaction‑based image types (`CHECK`, `DEPOSIT_SLIP`, `DEPOSIT_CHECK`); omit this parameter for those requests. schema: type: string format: date maxLength: 30 example: '2026-01-15' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/BankingImage' examples: TransactionImage: summary: TransactionImage description: > Example payload for transaction-based images (CHECK, DEPOSIT_CHECK, and DEPOSIT_SLIP). value: transactionImageNumber: '2301' transactionDate: '2021-01-01' amount: currencyCode: USD amount: 0.11 id: '232' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI accountNumber: '2300000001' accountType: CHECKING imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT - data: aW1hZ2UgY2hlY2sgYmFjayAyMzAxIGpwZWc= type: JPEG view: BACK StatementImage: summary: StatementImage description: > Example payload for statement-based images (STATEMENT, CC_STATEMENT, or DOCUMENT). value: statementDescription: March Checking Statement statementDate: '2021-03-31' id: '40826' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: nydyvcDZDs_T7Znf1jkNNaaRILY00hctdMF8XdOM_Hs accountNumber: '192340000' accountType: CHECKING imageType: STATEMENT imageInfoItems: imageInfo: - data: c3RhdGVtZW50IG1hcmNoIDIwMjEgNDA4MjYgcGRm type: PDF '400': $ref: '#/components/responses/BankingImagesError400' '401': $ref: '#/components/responses/BankingImagesError401' '403': $ref: '#/components/responses/BankingImagesError403' '404': $ref: '#/components/responses/BankingImagesError404' '415': $ref: '#/components/responses/BankingImagesError415' '500': $ref: '#/components/responses/BankingImagesError500' x-position: 2 /v1/business-details: get: tags: - Profile summary: Get Business Details description: > Retrieves comprehensive business details for a company or user based on the provided search criteria. **Search Types:** - `BUSINESS_ID`: Search by the unique business/company identifier - `LOGIN_ID`: Search by the user's login ID **Response includes:** - Business name and registration information - Business address details (street, city, state, zip) - Primary contact information - TIN details (optional, when `includeTins=true`) - Customer/user details (optional, when `includeUsers=true`) **Usage Notes:** - The `searchType` and `searchValue` parameters are required - Use `BUSINESS_ID` search type when you have the company's unique identifier - Use `LOGIN_ID` search type when searching by a user's credentials - Set `includeTins=true` to retrieve Tax Identification Number details - Set `includeUsers=true` to retrieve associated user/customer information operationId: getBusinessDetailsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - description: > Specifies the type of search to perform. Determines how the searchValue parameter is interpreted. - **BUSINESS_ID**: Search using the unique business/company identifier assigned during registration - **LOGIN_ID**: Search using the user's login credentials (username) examples: SearchByBusinessId: description: Search using the company's unique identifier value: BUSINESS_ID SearchByLoginId: description: Search using the user's login credentials value: LOGIN_ID in: query name: searchType required: true schema: example: LOGIN_ID type: string - description: > The value to search for, based on the specified searchType. - When searchType is **BUSINESS_ID**: Provide the unique company/business identifier (e.g., "1234567890") - When searchType is **LOGIN_ID**: Provide the user's login ID (e.g., "johnsmith123") examples: BusinessIdExample: description: Unique business identifier value: '1234567890' LoginIdExample: description: User's login ID value: johnsmith123 in: query name: searchValue required: true schema: example: johnsmith123 type: string - description: > Flag to include Tax Identification Number (TIN) details in the response. When set to true, the response will include TIN information for each business location. examples: ExcludeTins: description: Exclude TIN details from response (default) value: false IncludeTins: description: Include TIN details in response value: true in: query name: includeTins required: false schema: default: false example: true type: boolean - description: > Flag to include additional customer/user details in the response. When set to true, the response will include information about users associated with the business. examples: ExcludeUsers: description: Exclude user details from response (default) value: false IncludeUsers: description: Include user details in response value: true in: query name: includeUsers required: false schema: default: false example: true type: boolean responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: additionalInfo: employeeCount: '500' industry: Technology yearEstablished: '2010' billingAccountNumber: '123456789' billingMiscellaneous: Monthly billing cycle businessId: BUS123456 businessName: Acme Corporation contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 institutionId: '04715' status: ACTIVE tins: - memberNumber: '9749374838' primary: true tinName: Acme tinNumber: '123456789' users: - contactMethods: - contactInfo: john.smith@acme.com enrolledDateTime: '2024-01-15T10:30:00Z' protocol: EMAIL telephoneCountryCode: '+1' email: john.smith@acme.com firstName: John lastName: Smith loginId: jsmith@acme.com middleName: Michael role: PRIMARY_ADMIN status: ACTIVE updatePending: false schema: $ref: '#/components/schemas/BusinessDetails' description: Business details retrieved successfully. '400': content: application/json: examples: InvalidInputParameters: description: InvalidInputParameters summary: InvalidInputParameters value: code: BBS-40095 message: 'Invalid searchType: Test' schema: $ref: '#/components/schemas/ErrorResponse' description: | Bad Request - Invalid input parameters. Possible causes: - Invalid searchType '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBS-40150 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBS-40151 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '500': content: application/json: examples: InternalServerError: description: InternalServerError summary: InternalServerError value: code: BBS-40147 message: >- Business details not found for given searchType: BUSINESS_ID and searchValue: 8910048117 schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving business details. x-position: 1 /v1/business-registration-configs: get: tags: - Registration summary: Get Business Registration Configuration description: > Retrieves the business registration configuration for a specific financial institution. This endpoint provides all settings required to render the business registration form, including: - **Online Features**: List of available online banking features (ACH, Wire Transfer, Bill Pay, etc.) - **Additional Services**: List of supplementary services (Positive Pay, Account Reconciliation, etc.) Use this configuration to populate dropdowns and checkboxes in the registration form. operationId: getBusinessRegistrationConfigV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: additionalServices: - Positive Pay - Account Reconciliation - Lockbox Services - Merchant Services onlineFeatures: - ACH - Wire Transfer - Bill Pay - Remote Deposit Capture schema: $ref: '#/components/schemas/BusinessRegistrationConfig' description: Registration configuration retrieved successfully. '400': content: application/json: examples: InvalidInputParameters: description: InvalidInputParameters summary: InvalidInputParameters value: code: BBS-40095 message: Invalid institutionId schema: $ref: '#/components/schemas/ErrorResponse' description: | Bad Request - Invalid input parameters. Possible causes: - Invalid institution ID '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBS-40150 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBS-40151 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '500': content: application/json: examples: FailedToFetchBusinessRegistrationConfig: description: FailedToFetchBusinessRegistrationConfig summary: FailedToFetchBusinessRegistrationConfig value: code: BBS-40153 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving the configuration. x-position: 1 /v1/business-registrations: get: tags: - Registration summary: Get Business Registration by Confirmation Number description: > Retrieves a business banking registration using the unique confirmation number. The confirmation number is a 16-character alphanumeric code that was generated when the registration was created. **Response includes:** - Business information (name, address) - Primary business contact details - Administrator information - TIN details - Selected online features and services - Registration status and timestamps operationId: getBusinessRegistrationByConfirmationNumberV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - description: > The unique 16-character alphanumeric confirmation number generated during registration creation. in: query name: confirmationNumber required: true schema: example: FSUU58FY7X6N95TO maxLength: 16 minLength: 16 pattern: '^[0-9A-Za-z]{16}$' type: string responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: additionalServices: - Positive Pay - Account Reconciliation approvedDate: '11/20/2025 10:33:25 AM PST' businessId: '8899987654' businessName: Acme Corporation completedDate: '11/20/2025 10:33:25 AM PST' confirmationNumber: FSUU58FY7X6N95TO contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 createdUser: system declinedDate: '11/20/2025 10:33:25 AM PST' id: 0b0ef3b4376b400786738400c03ffd0f institutionId: '04715' message: Registration created successfully onlineFeatures: - ACH - Wire Transfer - Bill Pay registrationDate: '11/20/2025 10:33:25 AM PST' status: PENDING tins: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' users: - email: jane.doe@acme.com firstName: Jane lastName: Doe phoneNumber: 415-555-5678 role: PRIMARY_ADMIN schema: $ref: '#/components/schemas/BbRegistration' description: Business registration retrieved successfully. '400': content: application/json: examples: BadRequestInvalidInputData: description: BadRequestInvalidInputData summary: BadRequestInvalidInputData value: code: BBS-40095 message: Invalid confirmationNumber schema: $ref: '#/components/schemas/ErrorResponse' description: > Bad Request - Invalid confirmation number format or missing required parameters. '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBS-40150 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBS-40151 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '404': content: application/json: examples: ResourceNotFound: description: ResourceNotFound summary: ResourceNotFound value: code: BBS-40154 message: >- Business registration not found for given confirmationNumber schema: $ref: '#/components/schemas/ErrorResponse' description: Business registration not found. '500': content: application/json: examples: FailedToFetchBusinessRegistration: description: FailedToFetchBusinessRegistration summary: FailedToFetchBusinessRegistration value: code: BBS-40153 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving the registration. x-position: 2 post: tags: - Registration summary: Create Business Registration description: > Creates a new business banking registration for a financial institution. This endpoint accepts comprehensive business registration details including: - **Business Information**: Company name and business address - **Primary Business Contact**: Main contact person with name, email, and phone - **Primary Administrator**: Admin user who will manage the business banking account - **Secondary Administrators**: Additional admin users (optional) - **TIN Details**: Tax Identification Numbers with member numbers - **Online Features**: Requested banking features (ACH, Wire Transfer, etc.) - **Additional Services**: Extra services (Positive Pay, Account Reconciliation, etc.) Upon successful creation, a unique 16-character confirmation number is generated and returned. operationId: createBusinessRegistrationV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' requestBody: content: application/json: examples: CreateRegistrationRequest: description: CreateRegistrationRequest summary: CreateRegistrationRequest value: additionalServices: - Positive Pay - Account Reconciliation businessName: Acme Corporation contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith middleName: M phoneNumber: 415-555-1234 onlineFeatures: - ACH - Wire Transfer - Bill Pay tins: - hostPassword: '7888' memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' users: - email: jane.doe@acme.com firstName: Jane lastName: Doe middleName: L phoneNumber: 415-555-5678 userType: PRIMARY_ADMIN schema: $ref: '#/components/schemas/BbRegistration' description: > Business registration request payload containing all registration details. **Required fields:** - `businessName`: Name of the business (max 100 characters) - `contact`: Primary business contact object with `firstName`, `lastName`, `email`, `phoneNumber`, and nested `address` object - `tins`: Array with at least one TIN object containing `tinNumber` (9 digits), `tinName`, `memberNumber` (optional) and `hostPassword` - `users`: Array of administrator users with `firstName`, `lastName`, `email`, `phoneNumber`, and `userType` (PRIMARY_ADMIN) **Optional fields:** - `users`: Array of administrator users with `firstName`, `lastName`, `email`, `phoneNumber`, and `userType` (SECONDARY_ADMIN) - `onlineFeatures`: Array of online banking feature names (e.g., ["ACH", "Wire Transfer", "Bill Pay"]) - `additionalServices`: Array of additional service names (e.g., ["Positive Pay", "Account Reconciliation"]) required: true responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: additionalServices: - Positive Pay - Account Reconciliation approvedDate: '11/20/2025 10:33:25 AM PST' businessId: '8899987654' businessName: Acme Corporation completedDate: '11/20/2025 10:33:25 AM PST' confirmationNumber: FSUU58FY7X6N95TO contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 createdUser: system declinedDate: '11/20/2025 10:33:25 AM PST' id: 0b0ef3b4376b400786738400c03ffd0f institutionId: '04715' message: Registration created successfully onlineFeatures: - ACH - Wire Transfer - Bill Pay registrationDate: '11/20/2025 10:33:25 AM PST' status: PENDING tins: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' users: - email: jane.doe@acme.com firstName: Jane lastName: Doe phoneNumber: 415-555-5678 role: PRIMARY_ADMIN schema: $ref: '#/components/schemas/BbRegistration' description: > Business registration created successfully. Returns created BBRegistration. '400': content: application/json: examples: BadRequestInvalidInputData: description: BadRequestInvalidInputData summary: BadRequestInvalidInputData value: code: BBS-40095 message: Invalid tinNumber schema: $ref: '#/components/schemas/ErrorResponse' description: > Bad Request - Invalid input data. Possible causes: - Missing required fields (businessName, primaryBusinessContact, TIN, address) - Invalid TIN format (must be 9 digits) - Invalid email format - Invalid phone number format - Invalid state code (must be 2 characters) '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBS-40150 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBS-40151 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '500': content: application/json: examples: FailedToCreateBusinessRegistration: description: FailedToCreateBusinessRegistration summary: FailedToCreateBusinessRegistration value: code: BBS-40153 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while processing the registration. x-position: 4 '/v1/business-registrations/{registrationId}': get: tags: - Registration summary: Get Business Registration by Registration ID description: > Retrieves a business banking registration using the unique registration ID. The registration ID is an alphanumeric code that was generated when the registration was created. **Response includes:** - Business information (name, address) - Primary business contact details - Administrator information - TIN details - Selected online features and services - Registration status and timestamps operationId: getBusinessRegistrationByIdV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - description: > The unique alphanumeric registrationId generated during registration creation. example: a78b4a7cf6134c34a5d8083323d378c7 in: path name: registrationId required: true schema: example: FSUU58FY7X6N95TO pattern: '^[0-9a-zA-Z_-]+$' type: string responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: additionalServices: - Positive Pay - Account Reconciliation approvedDate: '11/20/2025 10:33:25 AM PST' businessId: '8899987654' businessName: Acme Corporation completedDate: '11/20/2025 10:33:25 AM PST' confirmationNumber: FSUU58FY7X6N95TO contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 createdUser: system declinedDate: '11/20/2025 10:33:25 AM PST' id: 0b0ef3b4376b400786738400c03ffd0f institutionId: '04715' message: Registration created successfully onlineFeatures: - ACH - Wire Transfer - Bill Pay registrationDate: '11/20/2025 10:33:25 AM PST' status: PENDING tins: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' users: - email: jane.doe@acme.com firstName: Jane lastName: Doe phoneNumber: 415-555-5678 role: PRIMARY_ADMIN schema: $ref: '#/components/schemas/BbRegistration' description: Business registration retrieved successfully. '400': content: application/json: examples: BadRequestInvalidInputData: description: BadRequestInvalidInputData summary: BadRequestInvalidInputData value: code: BBS-40095 message: Invalid registrationId schema: $ref: '#/components/schemas/ErrorResponse' description: > Bad Request - Invalid Registration Id format or missing required parameters. '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBS-40150 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBS-40151 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '404': content: application/json: examples: ResourceNotFound: description: ResourceNotFound summary: ResourceNotFound value: code: BBS-40154 message: Business registration not found for given registrationId schema: $ref: '#/components/schemas/ErrorResponse' description: Business registration not found. '500': content: application/json: examples: FailedToFetchBusinessRegistration: description: FailedToFetchBusinessRegistration summary: FailedToFetchBusinessRegistration value: code: BBS-40153 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving the registration. x-position: 3 /v1/business-entitlements-limits: get: description: Get all the business entitlements for given institutionId and businessId operationId: getBusinessEntitlementsLimitsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - description: ID of the business example: '4378848944' in: query name: businessId required: true schema: example: '4378848944' type: string - description: Location Identifier example: d51f36e19efe44d1b67980df07e28dee in: query name: institutionCustomerId required: false schema: example: d51f36e19efe44d1b67980df07e28dee type: string - description: Feature Name examples: AchCollections: description: ACH Collections value: ACH Collections AchPayments: description: ACH Payments value: ACH Payments BillPay: description: Bill Pay value: Bill Pay WiresDomestic: description: Wires - Domestic value: Wires - Domestic Zelle: description: Zelle value: Zelle in: query name: featureName required: false schema: example: ACH Payments type: string responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: accountEntitledFeature: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections memberNumber: '7838939999' tinNumber: '732832880' entitledFeatures: - featureName: ACH Payments limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionLimits: 1000000 - featureName: ACH Collections limits: dailyLimits: 1000000 perTransactionLimits: 1000000 - featureName: Wires - Domestic limits: dailyLimits: 1000000 perTransactionLimits: 1000000 secCodes: - ACH Payments Consumer (PPD) - ACH Payments Commercial (CCD) schema: $ref: '#/components/schemas/BusinessEntitlementsLimits' description: Successful retrieval of Business Entitlements from Database '400': content: application/json: examples: InvalidInputParameters: description: InvalidInputParameters summary: InvalidInputParameters value: code: BBE-41110 message: >- Required request parameter 'businessId' for method parameter type String is not present schema: $ref: '#/components/schemas/ErrorResponse' description: | Bad Request - Invalid input parameters. Possible causes: - Invalid businessId '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBE-41108 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBE-41109 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '500': content: application/json: examples: InternalServerError: description: InternalServerError summary: InternalServerError value: code: BBE-41111 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving business entitlements and limits. security: - bearerAuth: [] summary: Get Business Entitlements Limits tags: - Entitlements x-position: 1 /v1/user-entitlements-limits: get: description: Get all the user entitlements for given institutionId and loginId operationId: getUserEntitlementsLimitsV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/TransactionIdRequest' - description: Location Identifier (Product Guid) example: d51f36e19efe44d1b67980df07e28dee in: query name: institutionCustomerId required: false schema: example: d51f36e19efe44d1b67980df07e28dee type: string - description: Feature Name examples: ApproveAchCollections: description: Approve ACH Collections value: Approve ACH Collections BillPay: description: Bill Pay value: Bill Pay CreateAdHocAchCollections: description: Create Ad Hoc ACH Collections value: Create Ad Hoc ACH Collections CreateAdHocAchPayments: description: Create Ad Hoc ACH Payments value: Create Ad Hoc ACH Payments Zelle: description: Zelle value: Zelle in: query name: featureName required: false schema: example: Approve ACH Payments type: string responses: '200': content: application/json: examples: SuccessfulResponse: description: SuccessfulResponse summary: SuccessfulResponse value: accountEntitledFeature: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - Create Ad Hoc ACH Collections - Create ACH Collections using Templates - Approve ACH Collections - Create Ad Hoc ACH Payments - Create ACH Payments using Templates - Approve ACH Payments - Create ACH File Pass-Through - Approve ACH File Pass-Through memberNumber: '4738374839' tinNumber: '123456789' entitledFeatures: - featureName: Approve ACH Payments limits: perTransactionLimits: 1000000 - featureName: Create Ad Hoc ACH Collections limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH Collections using Templates limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Approve ACH Collections limits: perTransactionLimits: 1000000 - featureName: Approve ACH Templates - featureName: Manage ACH Templates - featureName: Create Ad Hoc ACH Payments limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH Payments using Templates limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH File Pass-Through limits: dailyLimits: 3000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 3000000 - featureName: Approve ACH File Pass-Through limits: perTransactionLimits: 1 - featureName: Manage ACH Blocks and Filters - featureName: Decision ACH Positive Pay Exceptions - featureName: ACH File Import - Manage Import File Definitions - featureName: ACH File Import - Import Recipient Information - featureName: Bill Pay secCodes: - ACH Payments Consumer (PPD) - ACH Payments Payroll (PPD) - ACH Payments Commercial (CCD) - ACH Collections Consumer (PPD) - ACH Collections Commercial (CCD) schema: $ref: '#/components/schemas/UserEntitlementsLimits' description: Successful retrieval of User Entitlements from Database '400': content: application/json: examples: InvalidInputParameters: description: InvalidInputParameters summary: InvalidInputParameters value: code: BBE-41110 message: >- Required request parameter 'institutionId' for method parameter type String is not present schema: $ref: '#/components/schemas/ErrorResponse' description: | Bad Request - Invalid input parameters. Possible causes: - Invalid institution ID format '401': content: application/json: examples: InvalidJwt: description: InvalidJwt summary: InvalidJwt value: code: BBE-41108 message: Invalid JWT schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Authentication credentials are missing or invalid. '403': content: application/json: examples: InvalidRolesOrEntitlements: description: InvalidRolesOrEntitlements summary: InvalidRolesOrEntitlements value: code: BBE-41109 message: Invalid roles or entitlements schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid roles or entitlements. '500': content: application/json: examples: InternalServerError: description: InternalServerError summary: InternalServerError value: code: BBE-41111 message: Unexpected server error schema: $ref: '#/components/schemas/ErrorResponse' description: > Internal Server Error - An unexpected error occurred while retrieving user entitlements and limits. security: - bearerAuth: [] summary: Get User Entitlements Limits tags: - Entitlements x-position: 2 /v1/ach-payments: post: operationId: createAchPaymentV1 summary: Create an ACH Payment description: >- Creates a new ACH Payment or ACH collection. **Examples** illustrate requests by payment type (ACH_COLLECTION or ACH_PAYMENT) and sub-field (SEC code). ACH_PAYMENT uses DEBIT; ACH_COLLECTION uses CREDIT. tags: - Payments parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' requestBody: required: true description: > **Request body:** - The **examples** below provide sample bodies by **payment type** (ACH_COLLECTION or ACH_PAYMENT) and **sub-field** (SEC code). - **Transaction type:** ACH_PAYMENT uses **DEBIT**; ACH_COLLECTION uses **CREDIT**. - **Sub-fields (achSecCode):** COMMERCIAL_CCD, CONSUMER_PPD, PAYROLL_PPD, CHILD_SUPPORT_CCD (for ACH_PAYMENT); COMMERCIAL_CCD, CONSUMER_PPD (for ACH_COLLECTION). - **currencyCode:** Each **`achTransactions[].currencyCode`** must be a value from **`#/components/schemas/CurrencyCode`** (**enum**), e.g. **USD**. - **Required fields (payment):** paymentDescription, paymentType, transactionType, tinNumber, accountNumber, deliveryDate. - **Optional (payment):** paymentName — if omitted, the API uses the contactName (see **paymentName** on the payment object). - **Required fields (ACH):** achCompanyId, achSecCode, achTransactions. - **Required fields (achTransactions[]):** amount, currencyCode, contactAccountType, contactBankAchRoutingNumber, contactAccountNumber, contactName. content: application/json: schema: $ref: '#/components/schemas/AchPayment' examples: AchPaymentDebitCommercialCcd: summary: AchPaymentCommercialCcd value: paymentName: Vendor Payroll Batch paymentDescription: Weekly payroll - Commercial CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 AchPaymentDebitConsumerPpd: summary: AchPaymentConsumerPpd value: paymentName: Consumer PPD Payment paymentDescription: Consumer debit - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Jane Smith contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-002 AchPaymentDebitPayrollPpd: summary: AchPaymentPayrollPpd value: paymentName: Payroll PPD Batch paymentDescription: Payroll - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: PAYROLL_PPD sameDayAch: false batchOffset: false achTransactions: - amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Employee One contactBankName: First National Bank contactAccountNumber: '1112223333' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: EMP-001 AchPaymentDebitChildSupportCcd: summary: AchPaymentChildSupportCcd value: paymentName: Child Support CCD Batch paymentDescription: Child support - CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: CHILD_SUPPORT_CCD sameDayAch: false batchOffset: false achTransactions: - amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: State Agency contactBankName: State Bank contactAccountNumber: '4445556666' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CS-001 AchCollectionCreditCommercialCcd: summary: AchCollectionCommercialCcd value: paymentName: Commercial CCD Collection paymentDescription: Collection - Commercial CCD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Payer Corp contactBankName: First National Bank contactAccountNumber: '7778889999' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: PYR-001 AchCollectionCreditConsumerPpd: summary: AchCollectionConsumerPpd value: paymentName: Consumer PPD Collection paymentDescription: Collection - Consumer PPD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' achCompanyId: '1815477800' achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Consumer Payer contactBankName: First National Bank contactAccountNumber: '3334445555' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CON-001 responses: '201': description: >- ACH Payment created successfully. **Examples** show sample responses by payment type and sub-field. content: application/json: schema: $ref: '#/components/schemas/AchPayment' examples: AchPaymentDebitCommercialCcd: summary: ResponseAchPaymentCommercialCcd value: id: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 institutionId: '45678' paymentName: Vendor Payroll Batch paymentDescription: Weekly payroll - Commercial CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 AchPaymentDebitConsumerPpd: summary: ResponseAchPaymentConsumerPpd value: id: 1bdc0bfe-3cfe-4aea-a527-54d0d7f3d651 institutionId: '45678' paymentName: Consumer PPD Payment paymentDescription: Consumer debit - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 4a1de049-fbaf-4bde-c94b-cb2554d41286 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Jane Smith contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-002 AchPaymentDebitPayrollPpd: summary: ResponseAchPaymentPayrollPpd value: id: 2bdc0bfe-3cfe-4aea-a527-54d0d7f3d652 institutionId: '45678' paymentName: Payroll PPD Batch paymentDescription: Payroll - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: PAYROLL_PPD sameDayAch: false batchOffset: false achTransactions: - id: 5b2ef15a-fcaf-5cef-d05c-dc3665e52397 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Employee One contactBankName: First National Bank contactAccountNumber: '1112223333' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: EMP-001 AchPaymentDebitChildSupportCcd: summary: ResponseAchPaymentChildSupportCcd value: id: 3bdc0bfe-3cfe-4aea-a527-54d0d7f3d653 institutionId: '45678' paymentName: Child Support CCD Batch paymentDescription: Child support - CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CHILD_SUPPORT_CCD sameDayAch: false batchOffset: false achTransactions: - id: 6c3fa26b-0db0-6df0-e16d-ed4776f634a8 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: State Agency contactBankName: State Bank contactAccountNumber: '4445556666' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CS-001 AchCollectionCreditCommercialCcd: summary: ResponseAchCollectionCommercialCcd value: id: 4bdc0bfe-3cfe-4aea-a527-54d0d7f3d654 institutionId: '45678' paymentName: Commercial CCD Collection paymentDescription: Collection - Commercial CCD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PROCESSED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 7d40b37c-1ec1-7e01-f27e-fe58880745b9 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Payer Corp contactBankName: First National Bank contactAccountNumber: '7778889999' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: PYR-001 AchCollectionCreditConsumerPpd: summary: ResponseAchCollectionConsumerPpd value: id: 5bdc0bfe-3cfe-4aea-a527-54d0d7f3d655 institutionId: '45678' paymentName: Consumer PPD Collection paymentDescription: Collection - Consumer PPD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_FI_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 8e51c48d-2fd2-8f12-038f-0f69991856ca amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Consumer Payer contactBankName: First National Bank contactAccountNumber: '3334445555' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CON-001 '400': $ref: '#/components/responses/BadRequestBody' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '500': $ref: '#/components/responses/InternalServerError2' x-position: 3 get: operationId: getAchPaymentsV1 summary: Get List of ACH Payments tags: - Payments description: > Provide fromDate and toDate (YYYY-MM-DD). Date range may not exceed 30 days. Optional paymentStatus and paymentType (comma-separated) filters. Use paymentType to restrict to ACH_PAYMENT and/or ACH_COLLECTION; defaults to both when omitted. To get a single payment by ID, use GET /v1/ach-payments/{paymentId}. parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' - name: fromDate in: query required: true description: Start date (YYYY-MM-DD). schema: type: string format: date example: '2025-02-01' - name: toDate in: query required: true description: 'End date (YYYY-MM-DD). Must be >= fromDate, max 30 days.' schema: type: string format: date example: '2025-02-15' - name: paymentStatus in: query required: false description: >- Comma-separated payment statuses (e.g. PENDING_COMPANY_APPROVAL, SCHEDULED, PROCESSED). Used only for list. schema: type: string example: 'PENDING_COMPANY_APPROVAL,SCHEDULED' - name: paymentType in: query required: false description: >- Comma-separated types to include. Allowed values ACH_PAYMENT, ACH_COLLECTION. Defaults to both when omitted. Used only for list. schema: type: string example: 'ACH_PAYMENT,ACH_COLLECTION' responses: '200': description: >- List of ACH Payments. **Examples** show sample list payloads by payment type and sub-field. content: application/json: schema: $ref: '#/components/schemas/Payments' examples: AchPaymentCommercialCcd: summary: ListAchPaymentCommercialCcd value: payments: - id: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 institutionId: '45678' paymentName: Vendor Payroll Batch paymentDescription: Weekly payroll - Commercial CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 AchPaymentConsumerPpd: summary: ListAchPaymentConsumerPpd value: payments: - id: 1bdc0bfe-3cfe-4aea-a527-54d0d7f3d651 institutionId: '45678' paymentName: Consumer PPD Payment paymentDescription: Consumer PPD payment paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' achCompanyId: '1815477800' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 4a1de049-fbaf-4bde-c94b-cb2554d41286 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Jane Smith contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-002 AchPaymentPayrollPpd: summary: ListAchPaymentPayrollPpd value: payments: - id: 2bdc0bfe-3cfe-4aea-a527-54d0d7f3d652 institutionId: '45678' paymentName: Payroll PPD Batch paymentDescription: Payroll run — PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' achCompanyId: '1815477800' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achSecCode: PAYROLL_PPD sameDayAch: false batchOffset: false achTransactions: - id: 5b2ef15a-fcaf-5cef-d05c-dc3665e52397 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Employee One contactBankName: First National Bank contactAccountNumber: '1112223333' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: EMP-001 AchPaymentChildSupportCcd: summary: ListAchPaymentChildSupportCcd value: payments: - id: 3bdc0bfe-3cfe-4aea-a527-54d0d7f3d653 institutionId: '45678' paymentName: Child Support CCD Batch paymentDescription: Child support disbursement — CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' achCompanyId: '1815477800' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achSecCode: CHILD_SUPPORT_CCD sameDayAch: false batchOffset: false achTransactions: - id: 6c3fa26b-0db0-6df0-e16d-ed4776f634a8 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: State Agency contactBankName: State Bank contactAccountNumber: '4445556666' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CS-001 AchCollectionCommercialCcd: summary: ListAchCollectionCommercialCcd value: payments: - id: 4bdc0bfe-3cfe-4aea-a527-54d0d7f3d654 institutionId: '45678' paymentName: Commercial CCD Collection paymentDescription: Commercial collection — CCD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' achCompanyId: '1815477800' status: PROCESSED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 7d40b37c-1ec1-7e01-f27e-fe58880745b9 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Payer Corp contactBankName: First National Bank contactAccountNumber: '7778889999' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: PYR-001 AchCollectionConsumerPpd: summary: ListAchCollectionConsumerPpd value: payments: - id: 5bdc0bfe-3cfe-4aea-a527-54d0d7f3d655 institutionId: '45678' paymentName: Consumer PPD Collection paymentDescription: Consumer collection — PPD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' achCompanyId: '1815477800' status: PENDING_FI_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 8e51c48d-2fd2-8f12-038f-0f69991856ca amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Consumer Payer contactBankName: First National Bank contactAccountNumber: '3334445555' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CON-001 '400': $ref: '#/components/responses/BadRequestQueryParams' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '500': $ref: '#/components/responses/InternalServerError2' x-position: 1 '/v1/ach-payments/{paymentId}': get: operationId: getAchPaymentByPaymentIdV1 summary: Get ACH Payment by Payment ID description: > Retrieves a single ACH Payment (ACH_PAYMENT or ACH_COLLECTION) by its payment ID. Only payments in Open API–visible statuses are returned; otherwise 404 is returned. tags: - Payments parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' - name: paymentId in: path required: true description: Payment ID schema: type: string example: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 responses: '200': description: >- The ACH Payment. **Examples** show sample responses by payment type and sub-field. content: application/json: schema: $ref: '#/components/schemas/AchPayment' examples: AchPaymentDebitCommercialCcd: summary: GetByIdAchPaymentCommercialCcd value: id: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 institutionId: '45678' paymentName: Vendor Payroll Batch paymentDescription: Weekly payroll - Commercial CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 AchPaymentDebitConsumerPpd: summary: GetByIdAchPaymentConsumerPpd value: id: 1bdc0bfe-3cfe-4aea-a527-54d0d7f3d651 institutionId: '45678' paymentName: Consumer PPD Payment paymentDescription: Consumer debit - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 4a1de049-fbaf-4bde-c94b-cb2554d41286 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Jane Smith contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-002 AchPaymentDebitPayrollPpd: summary: GetByIdAchPaymentPayrollPpd value: id: 2bdc0bfe-3cfe-4aea-a527-54d0d7f3d652 institutionId: '45678' paymentName: Payroll PPD Batch paymentDescription: Payroll - PPD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: PAYROLL_PPD sameDayAch: false batchOffset: false achTransactions: - id: 5b2ef15a-fcaf-5cef-d05c-dc3665e52397 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Employee One contactBankName: First National Bank contactAccountNumber: '1112223333' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: EMP-001 AchPaymentDebitChildSupportCcd: summary: GetByIdAchPaymentChildSupportCcd value: id: 3bdc0bfe-3cfe-4aea-a527-54d0d7f3d653 institutionId: '45678' paymentName: Child Support CCD Batch paymentDescription: Child support - CCD paymentType: ACH_PAYMENT transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 600 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CHILD_SUPPORT_CCD sameDayAch: false batchOffset: false achTransactions: - id: 6c3fa26b-0db0-6df0-e16d-ed4776f634a8 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: State Agency contactBankName: State Bank contactAccountNumber: '4445556666' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CS-001 AchCollectionCreditCommercialCcd: summary: GetByIdAchCollectionCommercialCcd value: id: 4bdc0bfe-3cfe-4aea-a527-54d0d7f3d654 institutionId: '45678' paymentName: Commercial CCD Collection paymentDescription: Collection - Commercial CCD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PROCESSED confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: COMMERCIAL_CCD sameDayAch: false batchOffset: false achTransactions: - id: 7d40b37c-1ec1-7e01-f27e-fe58880745b9 amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Payer Corp contactBankName: First National Bank contactAccountNumber: '7778889999' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: PYR-001 AchCollectionCreditConsumerPpd: summary: GetByIdAchCollectionConsumerPpd value: id: 5bdc0bfe-3cfe-4aea-a527-54d0d7f3d655 institutionId: '45678' paymentName: Consumer PPD Collection paymentDescription: Collection - Consumer PPD paymentType: ACH_COLLECTION transactionType: CREDIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_FI_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 500 numberOfPayments: 1 achCompanyId: '1815477800' achCompanyName: Acme Corp achSecCode: CONSUMER_PPD sameDayAch: false batchOffset: false achTransactions: - id: 8e51c48d-2fd2-8f12-038f-0f69991856ca amount: 500 transactionPrice: 0.25 currencyCode: USD contactName: Consumer Payer contactBankName: First National Bank contactAccountNumber: '3334445555' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: CON-001 '400': $ref: '#/components/responses/BadRequestPaymentId' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '404': $ref: '#/components/responses/NotFound1' '500': $ref: '#/components/responses/InternalServerError2' x-position: 2 /v1/wire-payments: post: operationId: createWirePaymentV1 summary: Create a Wire Payment description: >- Creates a new domestic or international Wire Payment. **Examples** illustrate requests by payment type (WIRE_DOMESTIC or WIRE_INTERNATIONAL). tags: - Payments parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' requestBody: required: true description: > **Request body:** - The **examples** below provide sample bodies by **payment type** — WIRE_DOMESTIC or WIRE_INTERNATIONAL. - **WIRE_DOMESTIC:** Domestic wire (USD, US bank routing); **WIRE_INTERNATIONAL:** International wire (optional intermediary bank, optional foreign currency). - **Allowed countries / currencies:** **`#/components/schemas/CountryName`** — every **`address.country`** (beneficiary and beneficiary-bank addresses) must be a **full country name** from that schema’s **enum**, not a two-letter code. **`currencyCode`** and **`foreignCurrencyCode`** must be values from **`#/components/schemas/CurrencyCode`** (**enum**), e.g. **USD**, **EUR**. - **Required fields (payment):** paymentType, transactionType, tinNumber, accountNumber, deliveryDate. - **Optional (payment):** paymentName — if omitted, the API uses the beneficiaryName (see **paymentName** on the payment object); **paymentDescription** on the payment object. - **Required:** wireTransaction (shape must match **paymentType**; see **DomesticWireTransaction** / **InternationalWireTransaction** in schemas). - **WIRE_DOMESTIC — wireTransaction:** amount, **currencyCode** (per **`#/components/schemas/CurrencyCode`**); **beneficiaryDetails:** beneficiaryName, beneficiaryAccountNumber, **address** (address1, city, **country** = allowed Address country **name** per **CountryName**); **beneficiaryBankDetails:** beneficiaryBankRoutingNumber, purposeOfWire (required when financial institution configures to require it). - **WIRE_INTERNATIONAL — wireTransaction:** amount, **currencyCode** (per **`#/components/schemas/CurrencyCode`**); **foreignCurrencyCode** (same allowed values as **currencyCode**, per **`#/components/schemas/CurrencyCode`**), **foreignCurrencyAmount**, **exchangeRate**; exactly one of **sendInForeignCurrency** or **transactInForeignCurrency** true; **beneficiaryDetails** as for domestic, including **purposeOfWire** (required when the financial institution configures to require it; same rule as **WIRE_DOMESTIC**); **beneficiaryBankDetails:** beneficiaryBankName, beneficiaryBankSwiftNumber, **address** (address1, city, **country** = allowed Address country **name** per **CountryName**). Optional **intermediaryBankDetails** (only when the financial institution enables international intermediary — same FI configuration pattern as **purposeOfWire**): if **intermediaryBankType** is **DOMESTIC**, use **`#/components/schemas/IntermediaryBankDetailsIntlWireDomesticIntermediary`** (**intermediaryBankRoutingNumber** required; **intermediaryBankName** not used). If **INTERNATIONAL**, use **`#/components/schemas/IntermediaryBankDetailsIntlWireForeignIntermediary`** (**intermediaryBankName** and **intermediaryBankSwiftNumber** required). content: application/json: schema: $ref: '#/components/schemas/WirePayment' examples: WireDomestic: summary: DomesticWire value: paymentName: Domestic Wire Transfer paymentDescription: One-time vendor payment paymentType: WIRE_DOMESTIC transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' wireTransaction: amount: 50000 transactionPrice: 25 currencyCode: USD sendInForeignCurrency: false transactInForeignCurrency: false beneficiaryDetails: beneficiaryName: ABC Supplier Inc beneficiaryAccountNumber: '111222333444' beneficiaryInstructions: 'Payment for invoice #1234' purposeOfWire: Trade payment address: address1: 100 Main St address2: Suite 400 city: New York state: NY zipCode: '10001' country: United States beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' beneficiaryBankName: Chase Bank WireInternational: summary: InternationalWire value: paymentName: International Wire Transfer paymentDescription: Euro payment to EU vendor paymentType: WIRE_INTERNATIONAL transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '1234567890' tinNumber: '123456789' wireTransaction: amount: 75000 transactionPrice: 35 currencyCode: USD sendInForeignCurrency: true transactInForeignCurrency: false foreignCurrencyCode: EUR foreignCurrencyAmount: 63597.07 exchangeRate: 0.847961 beneficiaryDetails: beneficiaryName: EU Vendor GmbH beneficiaryAccountNumber: DE89370400440532013000 beneficiaryInstructions: Invoice EUR 63597.07 purposeOfWire: International trade address: address1: Berliner Str 1 address2: '' city: Berlin state: BE zipCode: '10115' country: Germany beneficiaryBankDetails: beneficiaryBankSwiftNumber: DEUTDEFF beneficiaryBankName: Deutsche Bank beneficiaryBankAccountNumber: DE89370400440532013000 address: address1: Taunusanlage 12 address2: '' city: Frankfurt am Main state: HE zipCode: '60325' country: Germany intermediaryBankDetails: intermediaryBankSwiftNumber: CHASUS33 intermediaryBankName: Chase Bank NA intermediaryBankType: INTERNATIONAL responses: '201': description: >- Wire Payment created successfully. **Examples** show sample responses by wire type. content: application/json: schema: $ref: '#/components/schemas/WirePayment' examples: WireDomestic: summary: ResponseDomesticWire value: id: 6bdc0bfe-3cfe-4aea-a527-54d0d7f3d656 institutionId: '45678' paymentName: Domestic Wire Transfer paymentDescription: One-time vendor payment paymentType: WIRE_DOMESTIC transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 50000 numberOfPayments: 1 wireTransaction: amount: 50000 transactionPrice: 25 currencyCode: USD sendInForeignCurrency: false transactInForeignCurrency: false beneficiaryDetails: beneficiaryName: ABC Supplier Inc beneficiaryAccountNumber: '111222333444' purposeOfWire: Trade payment address: address1: 100 Main St address2: Suite 400 city: New York state: NY zipCode: '10001' country: United States beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' beneficiaryBankName: Chase Bank beneficiaryBankType: DOMESTIC WireInternational: summary: ResponseInternationalWire value: id: 7bdc0bfe-3cfe-4aea-a527-54d0d7f3d657 institutionId: '45678' paymentName: International Wire Transfer paymentDescription: Euro payment to EU vendor paymentType: WIRE_INTERNATIONAL transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 75000 numberOfPayments: 1 wireTransaction: amount: 75000 transactionPrice: 35 currencyCode: USD sendInForeignCurrency: true transactInForeignCurrency: false foreignCurrencyCode: EUR foreignCurrencyName: Euro foreignCurrencyAmount: 63597.07 exchangeRate: 0.847961 beneficiaryDetails: beneficiaryName: EU Vendor GmbH beneficiaryAccountNumber: DE89370400440532013000 purposeOfWire: International trade address: address1: Berliner Str 1 address2: '' city: Berlin state: BE zipCode: '10115' country: Germany beneficiaryBankDetails: beneficiaryBankSwiftNumber: DEUTDEFF beneficiaryBankName: Deutsche Bank beneficiaryBankType: INTERNATIONAL address: address1: Taunusanlage 12 address2: '' city: Frankfurt am Main state: HE zipCode: '60325' country: Germany intermediaryBankDetails: intermediaryBankSwiftNumber: CHASUS33 intermediaryBankName: Chase Bank NA intermediaryBankType: INTERNATIONAL '400': $ref: '#/components/responses/BadRequestBody' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '500': $ref: '#/components/responses/InternalServerError2' x-position: 6 get: operationId: getWirePaymentsV1 summary: Get List of Wire Payments tags: - Payments description: > Provide fromDate and toDate (YYYY-MM-DD). Date range may not exceed 30 days. Optional paymentStatus and paymentType (comma-separated) filters. Use paymentType to restrict to WIRE_DOMESTIC and/or WIRE_INTERNATIONAL; defaults to both when omitted. To get a single payment by ID, use GET /v1/wire-payments/{paymentId}. parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' - name: fromDate in: query required: true description: Start date (YYYY-MM-DD). schema: type: string format: date example: '2025-02-01' - name: toDate in: query required: true description: 'End date (YYYY-MM-DD). Must be >= fromDate, max 30 days.' schema: type: string format: date example: '2025-02-15' - name: paymentStatus in: query required: false description: >- Comma-separated payment statuses (e.g. PENDING_COMPANY_APPROVAL, SCHEDULED, PROCESSED). Used only for list. schema: type: string example: 'PENDING_COMPANY_APPROVAL,SCHEDULED' - name: paymentType in: query required: false description: >- Comma-separated types to include. Allowed values WIRE_DOMESTIC, WIRE_INTERNATIONAL. Defaults to both when omitted. Used only for list. schema: type: string example: 'WIRE_DOMESTIC,WIRE_INTERNATIONAL' responses: '200': description: >- List of Wire Payments (Payments). **Examples** show sample list payloads by payment type (WIRE_DOMESTIC or WIRE_INTERNATIONAL). content: application/json: schema: $ref: '#/components/schemas/Payments' examples: WireDomestic: summary: ListDomesticWire value: payments: - id: 6bdc0bfe-3cfe-4aea-a527-54d0d7f3d656 institutionId: '45678' paymentName: Domestic Wire Transfer paymentDescription: One-time vendor payment paymentType: WIRE_DOMESTIC transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 50000 numberOfPayments: 1 wireTransaction: amount: 50000 transactionPrice: 25 currencyCode: USD sendInForeignCurrency: false transactInForeignCurrency: false beneficiaryDetails: beneficiaryName: ABC Supplier Inc beneficiaryAccountNumber: '111222333444' purposeOfWire: Trade payment address: address1: 100 Main St address2: Suite 400 city: New York state: NY zipCode: '10001' country: United States beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' beneficiaryBankName: Chase Bank beneficiaryBankType: DOMESTIC WireInternational: summary: ListInternationalWire value: payments: - id: 7bdc0bfe-3cfe-4aea-a527-54d0d7f3d657 institutionId: '45678' paymentName: International Wire Transfer paymentDescription: Euro payment to EU vendor paymentType: WIRE_INTERNATIONAL transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 75000 numberOfPayments: 1 wireTransaction: amount: 75000 transactionPrice: 35 currencyCode: USD sendInForeignCurrency: true transactInForeignCurrency: false foreignCurrencyCode: EUR foreignCurrencyName: Euro foreignCurrencyAmount: 63597.07 exchangeRate: 0.847961 beneficiaryDetails: beneficiaryName: EU Vendor GmbH beneficiaryAccountNumber: DE89370400440532013000 purposeOfWire: International trade address: address1: Berliner Str 1 address2: '' city: Berlin state: BE zipCode: '10115' country: Germany beneficiaryBankDetails: beneficiaryBankSwiftNumber: DEUTDEFF beneficiaryBankName: Deutsche Bank beneficiaryBankType: INTERNATIONAL address: address1: Taunusanlage 12 address2: '' city: Frankfurt am Main state: HE zipCode: '60325' country: Germany intermediaryBankDetails: intermediaryBankSwiftNumber: CHASUS33 intermediaryBankName: Chase Bank NA intermediaryBankType: INTERNATIONAL '400': $ref: '#/components/responses/BadRequestQueryParams' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '500': $ref: '#/components/responses/InternalServerError2' x-position: 4 '/v1/wire-payments/{paymentId}': get: operationId: getWirePaymentByPaymentIdV1 summary: Get Wire Payment by Payment ID description: > Retrieves a single Wire Payment (WIRE_DOMESTIC or WIRE_INTERNATIONAL) by its payment ID. Only payments in Open API–visible statuses are returned; otherwise 404 is returned. tags: - Payments parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/OpenApiLoginIdQueryParam' - name: paymentId in: path required: true description: Payment ID schema: type: string example: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 responses: '200': description: >- The Wire Payment. **Examples** show sample responses by payment type (WIRE_DOMESTIC or WIRE_INTERNATIONAL). content: application/json: schema: $ref: '#/components/schemas/WirePayment' examples: WireDomestic: summary: GetByIdDomesticWire value: id: 6bdc0bfe-3cfe-4aea-a527-54d0d7f3d656 institutionId: '45678' paymentName: Domestic Wire Transfer paymentDescription: One-time vendor payment paymentType: WIRE_DOMESTIC transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: PENDING_COMPANY_APPROVAL confirmationNumber: Z5B2U1SP totalAmount: 50000 numberOfPayments: 1 wireTransaction: amount: 50000 transactionPrice: 25 currencyCode: USD sendInForeignCurrency: false transactInForeignCurrency: false beneficiaryDetails: beneficiaryName: ABC Supplier Inc beneficiaryAccountNumber: '111222333444' purposeOfWire: Trade payment address: address1: 100 Main St address2: Suite 400 city: New York state: NY zipCode: '10001' country: United States beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' beneficiaryBankName: Chase Bank beneficiaryBankType: DOMESTIC WireInternational: summary: GetByIdInternationalWire value: id: 7bdc0bfe-3cfe-4aea-a527-54d0d7f3d657 institutionId: '45678' paymentName: International Wire Transfer paymentDescription: Euro payment to EU vendor paymentType: WIRE_INTERNATIONAL transactionType: DEBIT deliveryDate: '2025-03-01' accountNumber: '******7890' tinNumber: '*****6789' status: SCHEDULED confirmationNumber: Z5B2U1SP totalAmount: 75000 numberOfPayments: 1 wireTransaction: amount: 75000 transactionPrice: 35 currencyCode: USD sendInForeignCurrency: true transactInForeignCurrency: false foreignCurrencyCode: EUR foreignCurrencyName: Euro foreignCurrencyAmount: 63597.07 exchangeRate: 0.847961 beneficiaryDetails: beneficiaryName: EU Vendor GmbH beneficiaryAccountNumber: DE89370400440532013000 purposeOfWire: International trade address: address1: Berliner Str 1 address2: '' city: Berlin state: BE zipCode: '10115' country: Germany beneficiaryBankDetails: beneficiaryBankSwiftNumber: DEUTDEFF beneficiaryBankName: Deutsche Bank beneficiaryBankType: INTERNATIONAL address: address1: Taunusanlage 12 address2: '' city: Frankfurt am Main state: HE zipCode: '60325' country: Germany intermediaryBankDetails: intermediaryBankSwiftNumber: CHASUS33 intermediaryBankName: Chase Bank NA intermediaryBankType: INTERNATIONAL '400': $ref: '#/components/responses/BadRequestPaymentId' '401': $ref: '#/components/responses/Unauthorized2' '403': $ref: '#/components/responses/Forbidden2' '404': $ref: '#/components/responses/NotFound1' '500': $ref: '#/components/responses/InternalServerError2' x-position: 5 /v1/recipients: get: summary: List Recipients description: > Retrieves all recipients associated with the authenticated user's account. Recipients are saved payees that can receive transfers from the user. operationId: listRecipientsV1 tags: - Recipients parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipients' application/xml: schema: $ref: '#/components/schemas/Recipients' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: | Unauthorized Possible causes: - Full authentication was not provided in the request. - The authentication token that was sent in the request is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: | Forbidden Possible causes: - The authentication provided does not authorize this request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create Recipient description: > Creates a new recipient record and optionally validates the provided information. Use this endpoint to add new payees that can receive transfers. **Validation:** Set `validate=true` query parameter to validate the recipient exists at the institution before saving. This performs a "lucky transfer" test to verify the account. operationId: createRecipientV1 tags: - Recipients parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: validate in: query description: >- When true, validates that the recipient exists at the institution before saving. Recommended to prevent transfers to invalid accounts. schema: type: boolean - name: fromAccountId in: query description: >- The account ID of the sender. Required when validate=true to perform the validation transfer test. schema: type: string requestBody: description: Information needed for creating a new recipient record required: true content: application/json: schema: $ref: '#/components/schemas/Recipient' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipients' application/xml: schema: $ref: '#/components/schemas/Recipients' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: | Unauthorized Possible causes: - Full authentication was not provided in the request. - The authentication token that was sent in the request is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: | Forbidden Possible causes: - The authentication provided does not authorize this request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 '/v1/recipients/{recipientId}': get: summary: Get Recipient by ID description: > Retrieves the details of a specific recipient using their unique identifier. Use this endpoint to display recipient details before initiating a transfer. operationId: getRecipientV1 tags: - Recipients parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: recipientId in: path description: >- The unique identifier of the recipient to retrieve. This ID is returned when creating a recipient. required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipients' application/xml: schema: $ref: '#/components/schemas/Recipients' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: | Unauthorized Possible causes: - Full authentication was not provided in the request. - The authentication token that was sent in the request is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: | Forbidden Possible causes: - The authentication provided does not authorize this request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update Recipient description: > Updates an existing recipient's information. After updating, the recipient record may need to be re-validated depending on which fields were changed. **Important:** If the account number or passcode is changed, consider re-validating the recipient before initiating transfers to ensure the updated information is correct. operationId: updateRecipientV1 tags: - Recipients parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: fromAccountId in: query description: >- The account ID of the sender. Required if re-validating the updated recipient. schema: type: string - name: recipientId in: path description: The unique identifier of the recipient to update. required: true schema: type: string requestBody: description: Information needed for creating a new recipient record required: true content: application/json: schema: $ref: '#/components/schemas/Recipient' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipients' application/xml: schema: $ref: '#/components/schemas/Recipients' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: | Unauthorized Possible causes: - Full authentication was not provided in the request. - The authentication token that was sent in the request is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: | Forbidden Possible causes: - The authentication provided does not authorize this request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 delete: summary: Delete Recipient description: > Removes a recipient from the user's list of saved payees. This action cannot be undone. **Important:** - The recipient will be permanently removed from the user's account - Any scheduled transfers to this recipient may fail after deletion - The user must re-create the recipient if they want to send transfers in the future operationId: deleteRecipientV1 tags: - Recipients parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: recipientId in: path description: The unique identifier of the recipient to delete. required: true schema: type: string responses: '204': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipients' application/xml: schema: $ref: '#/components/schemas/Recipients' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: | Unauthorized Possible causes: - Full authentication was not provided in the request. - The authentication token that was sent in the request is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: | Forbidden Possible causes: - The authentication provided does not authorize this request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 5 /v1/transfers: post: summary: Create Transfer description: > Creates a one-time or scheduled recurring transfer between accounts. Supports various transfer types including standard transfers, loan payments, and IRA contributions. **Transfer Types:** - **Standard**: Regular transfer between user's own accounts - **Recipient**: Transfer to another member at the same institution - **Loan Payment**: Transfer to pay down a loan balance - **IRA Contribution**: Transfer for retirement account contributions **Scheduling Options:** - **One-time**: Execute immediately or on a specific future date - **Recurring**: Set up automatic transfers on a schedule (daily, weekly, monthly, etc.) **Payment Options for Loans:** - `DEFAULT`: Standard payment - `PRINCIPAL_ONLY`: Apply payment to principal only - `INTEREST_ONLY`: Apply payment to interest only - `EXCESS_TO_PRINCIPAL`: Extra amount goes to principal - `EXCESS_TO_INTEREST`: Extra amount goes to interest operationId: createTransferV1 tags: - Transfers parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: description: > The transfer request object containing source account, destination account, amount, and optional scheduling information. content: application/json: schema: $ref: '#/components/schemas/Transfer' application/xml: schema: $ref: '#/components/schemas/Transfer' required: false responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Transfer' application/xml: schema: $ref: '#/components/schemas/Transfer' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Authorization error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: transferRequest x-position: 1 /v1/alert-templates: get: summary: List Alert Templates description: > Retrieve a list of all alert templates configured for the financial institution. The response includes all templates in any state (Draft, Archived, or Published) with their configured values. Use query parameters to filter results by alert type name, channel, content type, locale, or status. operationId: listAlertTemplatesV1 tags: - Templates parameters: - name: alertTypeName in: query description: alertTypeName required: false explode: true schema: type: array items: type: string - name: channel in: query description: channel required: false explode: true schema: type: array items: type: string enum: - EMAIL - SMS - PUSH - WEB enum: - EMAIL - SMS - PUSH - WEB - name: id in: query description: A number identifier for the alert template required: false schema: type: integer format: int64 - name: locale in: query description: locale required: false schema: type: string - name: state in: query description: state required: false explode: true schema: type: array items: type: string enum: - DRAFT - PUBLISHED - ARCHIVED enum: - DRAFT - PUBLISHED - ARCHIVED - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: Returns the Templates content: application/json: schema: $ref: '#/components/schemas/AlertTemplateResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create Alert Template description: > Create a new alert template for your financial institution. When you create a template, you define: - A unique ID, name, and status (Draft, Archived, or Published) - The content type (such as EMAIL_SUBJECT, EMAIL_BODY, or SMS_BODY) - The notification channel (Email, SMS, or Push) - The language locale (such as US English or Spanish) - For third-party vendor events, the vendor name operationId: createAlertTemplateV1 tags: - Templates parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/AlertTemplateResource' responses: '201': description: Template created successfully content: application/json: schema: $ref: '#/components/schemas/AlertTemplateResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update Alert Template description: > Update an existing alert template. You can modify the template content, status, channel, content type, and locale settings. operationId: updateAlertTemplateV1 tags: - Templates parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/AlertTemplateResource' responses: '200': description: Template updated successfully content: application/json: schema: $ref: '#/components/schemas/AlertTemplateResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 '/v1/alert-templates/{id}': delete: summary: Delete Alert Template description: >- Delete an alert template that is no longer needed. This permanently removes the template from the database. operationId: deleteAlertTemplateV1 tags: - Templates parameters: - name: id in: path description: A number identifier for the alert template required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '204': description: The fi template deleted successfully '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 /v1/alert-types: get: summary: List Alert Types description: > Retrieve a list of all alert types configured for the financial institution. The response includes all alert types, both active and inactive, with their configured values. Use query parameters to filter results by alert category, alert type name, or external system. operationId: listAlertTypesV1 tags: - System Alerts parameters: - name: alertCategory in: query description: alertCategory required: false schema: type: string - name: alertTypeName in: query description: alertTypeName required: false schema: type: string - name: externalSystem in: query description: externalSystem required: false schema: type: string - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: Returns the Alert Type resources content: application/json: schema: $ref: '#/components/schemas/AlertTypeResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create Alert Type description: > Create a new alert type for your financial institution. When you create an alert type, you define: - A unique ID, name, and status (active or inactive) - The specific alert category (such as ATM Withdrawal or Visa Low Balance) - The event domain (Account, Transaction, or Notification) - The account types that can use this alert type - The notification channels (Email, SMS, or Push) - For external vendor events, the vendor ID operationId: createAlertTypeV1 tags: - System Alerts parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/AlertTypeResource' responses: '201': description: AlertType created successfully content: application/json: schema: $ref: '#/components/schemas/AlertTypeResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update Alert Type description: > Update an existing alert type. You can modify any of the alert type settings, including the name, status, event domain, account types, and notification channels. operationId: updateAlertTypeV1 tags: - System Alerts parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/AlertTypeResource' responses: '200': description: Alert updated successfully content: application/json: schema: $ref: '#/components/schemas/AlertTypeResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 '/v1/alert-types/{id}': delete: summary: Delete Alert Type description: >- Delete an alert type that is no longer needed. This permanently removes the alert type from the database. operationId: deleteAlertTypeV1 tags: - System Alerts parameters: - name: id in: path description: A number identifier for the alert type required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '204': description: The Alert Type deleted successfully '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 /v1/institution-alert-types: get: summary: List Institution Alert Types description: Retrieves Alert Type resources based on multiple filters operationId: listInstitutionAlertTypesV1 tags: - Institution Alerts parameters: - name: alertTypeName in: query description: alertTypeName required: false schema: type: string - name: externalSystem in: query description: externalSystem required: false schema: type: string - name: statusOptd in: query description: statusOptd required: false schema: type: string enum: - ACTIVE - INACTIVE - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: Returns the Fi Alert Type resources content: application/json: schema: $ref: '#/components/schemas/InstitutionAlertTypeResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create Institution Alert Type description: Creates Alert Type operationId: createInstitutionAlertTypeV1 tags: - Institution Alerts parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/InstitutionAlertTypeResource' responses: '201': description: FI AlertType created successfully content: application/json: schema: $ref: '#/components/schemas/InstitutionAlertTypeResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update Institution Alert Type description: Updates Alert type for Institution operationId: updateInstitutionAlertTypeV1 tags: - Institution Alerts parameters: - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' requestBody: $ref: '#/components/requestBodies/InstitutionAlertTypeResource' responses: '200': description: Alert updated successfully for Institution content: application/json: schema: $ref: '#/components/schemas/InstitutionAlertTypeResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 '/v1/institution-alert-types/{id}': delete: summary: Delete Institution Alert Type description: Deletes Alert type for Vendor operationId: deleteInstitutionAlertTypeV1 tags: - Institution Alerts parameters: - name: id in: path description: A number identifier for the institution alert type required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '204': description: The Alert Type deleted successfully '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 /v1/alert-preferences: get: summary: List User Alert Preferences description: > Retrieve all alert preferences configured for a user. If user-specific preferences are not found, institution-level defaults are returned. **Key Features:** - Filter by account ID, alert types, or external ID - Supports pagination with `pageNo` and `pageSize` parameters - Returns opt-in/opt-out status for each alert type and channel operationId: listAlertPreferencesV1 tags: - User Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: accountExternalId in: query description: accountExternalId required: false schema: type: string - name: accountId in: query description: accountId required: false schema: type: string - name: alertTypes in: query description: alertTypes required: false schema: type: string - name: default in: query description: default required: false schema: type: boolean default: false - name: externalId in: query description: externalId required: false schema: type: string - name: pageNo in: query description: pageNo required: false schema: type: integer format: int32 default: 0 - name: pageSize in: query description: pageSize required: false schema: type: integer format: int32 default: 100 - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string responses: '200': description: Return list of preference and destination of user content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create User Alert Preference description: > Create a new alert preference for a user. This allows customers to opt-in to specific alert types and configure their notification preferences. **Required:** User must have destinations (email, phone, device) configured before creating preferences. operationId: createAlertPreferenceV1 tags: - User Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResource' description: alertPreferenceModel required: true responses: '201': description: Creates institution user preference successfully content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 '/v1/alert-preferences/{alertPreferenceId}': get: summary: Get Alert Preference by ID operationId: getAlertPreferenceV1 tags: - User Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: alertPreferenceId in: path description: alertPreferenceId required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' responses: '200': description: Alert preference retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update User Alert Preference description: Update user alert preference for opt in/opt out operationId: updateAlertPreferenceV1 tags: - User Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: alertPreferenceId in: path description: alertPreferenceId required: true schema: type: integer format: int64 - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - name: allowCallback in: query description: allowCallback required: false schema: type: boolean default: true - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResource' description: alertPrefModel required: true responses: '200': description: User Alert preference updated successfully content: application/json: schema: $ref: '#/components/schemas/AlertPreferenceResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 delete: summary: Delete User Alert Preference description: Removal of particular user alert preference operationId: deleteAlertPreferenceV1 tags: - User Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: alertPreferenceId in: path description: alertPreferenceId required: true schema: type: integer format: int64 - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string responses: '204': description: The user alert preference deleted successfully '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 5 /v1/institution-alert-preferences: get: summary: List Institution Alert Preferences description: GET FI preference list with opt in or opt out status operationId: listInstitutionAlertPreferencesV1 tags: - Institution Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: alertTypes in: query description: alertTypes required: false schema: type: string - $ref: '#/components/parameters/TransactionIdRequest' responses: '200': description: Return list of preference FI content: application/json: schema: $ref: '#/components/schemas/FiAlertPreferenceResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create Institution Alert Preference description: >- Create user alert preference of certain user with destination presence earlier operationId: createInstitutionAlertPreferenceV1 tags: - Institution Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' requestBody: content: application/json: schema: $ref: '#/components/schemas/FiAlertPreferenceResource' description: fiAlertPreferenceModel required: true responses: '201': description: Creates FiAlert preference successfully content: application/json: schema: $ref: '#/components/schemas/FiAlertPreferenceResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 '/v1/institution-alert-preferences/{institutionAlertPreferenceId}': put: summary: Update Institution Alert Preference description: Updates user alert preference for opt in/opt out operationId: updateInstitutionAlertPreferenceV1 tags: - Institution Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: institutionAlertPreferenceId in: path description: institutionAlertPreferenceId required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' requestBody: content: application/json: schema: $ref: '#/components/schemas/FiAlertPreferenceResource' description: fiAlertPrefModel responses: '200': description: FI Alert preference updated successfully content: application/json: schema: $ref: '#/components/schemas/FiAlertPreferenceResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 delete: summary: Delete Institution Alert Preference description: Removal of particular user alert preference operationId: deleteInstitutionAlertPreferenceV1 tags: - Institution Preferences parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: institutionAlertPreferenceId in: path description: institutionAlertPreferenceId required: true schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' responses: '204': description: The FI alert preference deleted successfully '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 4 '/subscriptions/v1/fis/{di_fiid}/fiCustomers/{di_ficustomer}/subscriptions': get: summary: List User Subscriptions description: > Retrieve the subscriptions for a given fi and customer. This can be filtered by a single eventType or list of event Types and/or action by specifying the query params. operationId: listUserSubscriptionsV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string - name: eventType in: query description: The event type which identifies the subscription schema: type: string format: string - name: action in: query description: The action that needs to take place for this subscription schema: type: string format: string responses: '200': description: An array of Subscription content: application/xml: schema: $ref: '#/components/schemas/Subscriptions' '204': description: Success with no content in the response content: {} '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 put: summary: Update Subscription description: Updates an existing Subscription operationId: updateUserSubscriptionV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: Content-Type in: header description: >- The content type of the request body, the expected content type is application/xml required: false schema: type: string default: application/xml - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string requestBody: content: application/xml: schema: $ref: '#/components/schemas/Subscription' required: true responses: '200': description: Subscription and related scheduling information updated successfully content: application/xml: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: Subscription x-position: 5 post: summary: Create Subscription description: Creates a new Subscription. operationId: createUserSubscriptionV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: Content-Type in: header description: >- The content type of the request body, the expected content type is application/xml required: false schema: type: string default: application/xml - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string requestBody: content: application/xml: schema: $ref: '#/components/schemas/Subscription' required: true responses: '200': description: Subscription and related scheduling information created successfully content: application/xml: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: Subscription x-position: 4 '/subscriptions/v1/fis/{di_fiid}/subscriptions': get: summary: List Institution Subscriptions description: Retrieves the first twenty subscriptions. operationId: listInstitutionSubscriptionsV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: eventType in: query description: The event type which identifies the subscription schema: type: string format: string - name: limit in: query description: >- The number of subscriptions to be retrieved as response. The default value for this query parameter is 30 schema: type: string format: string - name: userToken in: query description: >- The user identifier of the last subscription in the previous list retrieved. If this is not specified, the calling application will receive the first 'limit' subscriptions in the list as response. schema: type: string format: string - name: filterOutSubs in: query description: >- Its boolean type, when its true - subscription that is already processed during the given day will not be returned in the response schema: type: string format: string - name: status in: query description: >- A - Active, I - Inactive, default behavior is to send both active and inactive subscriptions schema: type: string format: string responses: '200': description: An array of Subscription content: application/xml: schema: $ref: '#/components/schemas/Subscriptions' '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 '/subscriptions/v1/fis/{di_fiid}/fiCustomers/{di_ficustomer}/subscriptions/{subscription_id}': get: summary: Get Subscription by ID description: Retrieves the Subscription identified by the subscription_id operationId: getSubscriptionByIdV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string - name: subscription_id in: path description: Identifies the subscription to get required: true schema: type: string format: string - name: eventType in: query description: The event type which identifies the subscription schema: type: string format: string - name: action in: query description: The action that needs to take place for this subscription. schema: type: string format: string responses: '200': description: A Subscription content: application/xml: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 delete: summary: Delete Subscription description: Delete a Subscription operationId: deleteSubscriptionV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string - name: subscription_id in: path description: Identifies the subscription to be deleted required: true schema: type: string format: string responses: '204': description: Subscription and related scheduling information deleted successfully content: {} '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 6 '/subscriptions/v1/fis/{di_fiid}/fiCustomers/{di_ficustomer}/events': post: summary: Send Event description: Sends the necessary event to the message service. operationId: sendCustomerEventV1 tags: - Notification Channels parameters: - $ref: '#/components/parameters/DITidRequest' - name: Content-Type in: header description: >- The content type of the request body, the expected content type is application/xml required: false schema: type: string default: application/xml - name: originating_ip in: header description: >- The IP address of the device making the request for authentication. If not provided the IP address logged will be the IP address extracted from the HTTP request. **Note:** This should be the originating device, rather than the client making the request e.g. if a mobile device is used the ip address should be that of the mobile device, rather than a back end service schema: type: string - name: User-Agent in: header description: >- Identifies the application and the platform making the request.The expected format is `{Appname}/{Appversion}[/{DeviceID}][;{Platform User-Agent}]` e.g. iPhone/1.0/abc12345;Nokia3110 schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - name: di_fiid in: path description: Identifies the Financial Institution required: true schema: type: string format: string - name: di_ficustomer in: path description: Identifies the customer required: true schema: type: string format: string requestBody: description: Events content: application/xml: schema: type: array items: $ref: '#/components/schemas/Events' required: true responses: '204': description: Event sent successfully content: {} '400': description: Bad request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: body x-position: 7 /v1/alert-history: get: summary: List Alert History description: > Retrieve alert history data using various filter parameters. You can filter by account IDs, date range, alert types, and other criteria. operationId: listAlertHistoryV1 tags: - History And Events parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: accountIds in: query description: accountIds required: false explode: true schema: type: array items: type: string - name: alertTypeNames in: query description: alertTypeNames required: false explode: true schema: type: array items: type: string - name: emailStatus in: query description: emailStatus required: false explode: true schema: type: array items: type: string enum: - SUCCESS - FAILURE - IN_PROCESS enum: - SUCCESS - FAILURE - IN_PROCESS - name: endDate in: query description: endDate required: false schema: type: string - name: eventIds in: query description: eventIds required: false explode: true schema: type: array items: type: string - name: id in: query description: id required: false schema: type: integer format: int64 - name: pushStatus in: query description: pushStatus required: false explode: true schema: type: array items: type: string enum: - SUCCESS - FAILURE - IN_PROCESS enum: - SUCCESS - FAILURE - IN_PROCESS - name: readFlag in: query description: readFlag required: false schema: type: boolean - name: smsStatus in: query description: smsStatus required: false explode: true schema: type: array items: type: string enum: - SUCCESS - FAILURE - IN_PROCESS enum: - SUCCESS - FAILURE - IN_PROCESS - name: startDate in: query description: startDate required: false schema: type: string - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string responses: '200': description: Returns the Alert History Summary content: application/json: schema: $ref: '#/components/schemas/AlertHistorySummaryResources' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 /v1/alert-history-content: get: summary: Get Alert History description: >- Retrieve specific alert history records using content ID, history summary ID, or event ID. operationId: getAlertHistoryContentV1 tags: - History And Events parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - name: alertHistoryId in: query description: alertHistoryId required: false schema: type: string - name: eventId in: query description: eventId required: false schema: type: string - name: id in: query description: id required: false schema: type: integer format: int64 - $ref: '#/components/parameters/TransactionIdRequest' responses: '200': description: Returns the Alert History Content content: application/json: schema: $ref: '#/components/schemas/AlertHistoryContentResource' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 /v1/realtime-events: post: summary: Publish Alert Event description: > Trigger an alert notification when an event occurs. This API processes the event data and sends notifications based on the configured alert type, template, and customer preferences. **Event Domain Types:** - **AccountEvent**: Account-related alerts (balance changes, low balance, etc.) - **TransactionEvent**: Transaction-related alerts (large transactions, payment exceeding limit, etc.) - **NotificationEvent**: Messages from external parties (such as Visa) that pass through to the customer without additional processing - **UserEvent**: User-related events (login, password change, etc.) **Processing Flow:** 1. Event is received and validated 2. Alert type and user preferences are matched 3. Template is applied with event data 4. Notifications are sent via configured channels (EMAIL, SMS, PUSH) operationId: publishAlertEventsV1 tags: - History And Events parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionCustomerId in: header description: institutionCustomerId required: false schema: type: string - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Event1' description: event required: true responses: '202': description: Event accepted '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: >- Internal error. Error codes: PRMSYS_10002 (Malformed input data), PRMSYS_10003 (Missing eventDetails or notification), PRMSYS_10007 (Missing mandatory fields), PRMSYS_10008 (Invalid institutionId), PRMSYS_10013 (Missing Authorization Token) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 3 /v1/institution-disclosures: get: tags: - Institution Disclosures summary: List Institution Disclosures description: > Retrieves all institution disclosure definitions configured for the financial institution associated with the authenticated caller. This endpoint returns the authoritative set of disclosures that govern what disclosure content may be presented to users in downstream onboarding, enrollment, or account servicing flows. **Use this endpoint to:** - Retrieve the complete set of disclosures configured for an institution. - Drive UI or integration flows that need to display or evaluate available disclosures. - Audit or verify disclosure configuration for the financial institution. **Behavior and capabilities:** - Disclosures include all configured disclosure definitions (stored content and status), regardless of enabled or disabled status. - Optional URL or raw content is included for disclosures that have it. - The `institutionDisclosureStatus` is included for disclosures that have it. - Responses are cache‑backed per institution; on a cache miss, disclosures are loaded from backend service and cached using an institution‑specific TTL before being returned. - A successful response returns HTTP 200 with either a populated or empty institutionDisclosures collection. operationId: listInstitutionDisclosuresV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionDisclosuresResponse' examples: ListInstitutionDisclosuresResponse: summary: ListInstitutionDisclosuresResponse description: Example payload for a list of institution disclosures. value: institutionDisclosures: - institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: TEST_DISCLOSURE_123 - institutionDisclosureId: 50145570B91B5BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: URL '400': $ref: '#/components/responses/DisclosuresError400' '401': $ref: '#/components/responses/DisclosuresError401' '500': $ref: '#/components/responses/DisclosuresError500' '501': $ref: '#/components/responses/DisclosuresError501' x-position: 1 post: tags: - Institution Disclosures summary: Create Institution Disclosure description: > This endpoint is part of the Disclosures Service, which manages disclosure definitions for financial institutions and tracks user acceptance of those disclosures in digital banking applications. Institution disclosures define the disclosures that must be presented to users (for example, online statements or regulatory agreements) and serve as the source of truth for downstream user disclosure workflows. Creates a new institution disclosure definition for the financial institution associated with the authenticated caller. The service validates the request, persists the disclosure, returns the created record (including the newly assigned disclosure identifier), and evicts the institution disclosures cache for that financial institution. **Use this endpoint to:** - Create a new disclosure definition for a financial institution. - Configure disclosure content that will later be presented to users during onboarding or account-related flows. - Enable an institution to manage which disclosures are available for user acceptance. **Behavior and capabilities:** - The request body must include `institutionDisclosureName`. Do not send `institutionDisclosureId` on create; the identifier is assigned by the downstream service and returned in the response. - Optional disclosure content is supported only as a URL; if `institutionDisclosureData` is present, `institutionDisclosureDataType` must be `URL`. If both data and type are omitted, the disclosure is created without URL content. - All request values must be printable ASCII and comply with field length limits enforced by the service. operationId: createInstitutionDisclosureV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' requestBody: required: true description: | Request payload used to create an institution disclosure. content: application/json: schema: $ref: '#/components/schemas/InstitutionDisclosureCreateRequest' examples: CustomizedDisclosureWithoutURLRequest: summary: CustomizedDisclosureWithoutUrlRequest description: Customized disclosure without URL content request value: institutionDisclosureName: TEST_DISCLOSURE_123 institutionDisclosureStatus: true CustomizedDisclosureWithURLRequest: summary: CustomizedDisclosureWithUrlRequest description: Customized disclosure with URL content request value: institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: URL institutionDisclosureStatus: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionDisclosure' examples: CustomizedDisclosureWithURLResponse: summary: CustomizedDisclosureWithUrlResponse description: Customized disclosure with URL content response value: institutionDisclosureId: 50145570B91B5BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: URL CustomizedDisclosureWithoutURLResponse: summary: CustomizedDisclosureWithoutUrlResponse description: Customized disclosure without URL content response value: institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: TEST_DISCLOSURE_123 '400': $ref: '#/components/responses/DisclosuresError400' '401': $ref: '#/components/responses/DisclosuresError401' '500': $ref: '#/components/responses/DisclosuresError500' '501': $ref: '#/components/responses/DisclosuresError501' x-position: 2 '/v1/institution-disclosures/{institutionDisclosureId}': put: tags: - Institution Disclosures summary: Update Institution Disclosure description: > Updates an existing institution disclosure definition for the financial institution associated with the authenticated caller. This endpoint allows changes to disclosure configuration or content and returns the updated disclosure as persisted by the service. Updates take effect immediately for downstream user disclosure workflows. **Use this endpoint to:** - Modify an existing institution disclosure’s name, content, or enabled status. - Update disclosure configuration that controls how disclosures are presented to users. - Keep institution disclosure definitions in sync with regulatory or business changes. **Behavior and capabilities:** - The disclosure to update is identified by `{institutionDisclosureId}` in the path and must match the `institutionDisclosureId` provided in the request body (case-insensitive). - Requests are validated for required fields, printable ASCII, length limits, and proper pairing of disclosure data and data type before being persisted. - Optional URL content: if `institutionDisclosureData` is present, `institutionDisclosureDataType` must be `URL`; if either data or type is supplied alone, the request is rejected. - Disclosure updates are persisted through backend service and the institution disclosures cache is evicted to ensure subsequent reads reflect the update. operationId: updateInstitutionDisclosureV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: institutionDisclosureId in: path required: true description: > Unique identifier of the institution disclosure associated with the financial institution. schema: type: string example: 50145570B91B5BD3E063B9E011AC7529 requestBody: required: true description: | Request payload used to update an institution disclosure. content: application/json: schema: $ref: '#/components/schemas/InstitutionDisclosureUpdateRequest' examples: UpdateInstitutionDisclosureRequest: summary: UpdateInstitutionDisclosureRequest description: Institution disclosure update request value: institutionDisclosureId: 50145570B91B5BD3E063B9E011AC7529 institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure2.pdf' institutionDisclosureDataType: URL institutionDisclosureStatus: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionDisclosure' examples: UpdateInstitutionDisclosureResponse: summary: UpdateInstitutionDisclosureResponse description: Institution disclosure update response value: institutionDisclosureId: 50145570B91B5BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure2.pdf' institutionDisclosureDataType: URL '400': $ref: '#/components/responses/DisclosuresError400' '401': $ref: '#/components/responses/DisclosuresError401' '500': $ref: '#/components/responses/DisclosuresError500' '501': $ref: '#/components/responses/DisclosuresError501' x-position: 3 /v1/institution-user-disclosures: get: tags: - User Disclosures summary: List User Disclosures description: > Retrieves a consolidated list of user disclosure records for the authenticated user. The response represents the authoritative view of the user’s acceptance or enrollment state for institution disclosures. **Use this endpoint to:** - Retrieve all disclosure statuses associated with an institution user. - Display user‑level and account‑level disclosure acceptance for features such as online statements. - Support user experience flows that require visibility into disclosure enrollment or acceptance history. - Audit or reconcile user disclosure records across disclosure types. **Behavior and capabilities:** - Aggregates disclosure data from multiple backend sources and normalizes all sources into a single `InstitutionUserDisclosure` structure, including disclosure identifiers or names, status, status update timestamps, and optional `paperWaiver` and `accountId` for account‑scoped disclosures. - Supports both retail and Business Banking users; Business Banking requests require a valid `institutionCustomerId`, while retail requests derive customer context from the access token. - A successful response returns HTTP 200 with either a populated or empty institutionUserDisclosures collection. operationId: listUserDisclosuresV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/UserDisclosuresInstitutionCustomerId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InstitutionUserDisclosuresResponse' examples: ListUserDisclosuresResponse: summary: ListUserDisclosuresResponse description: > Example payload for a list of institution user disclosures (multi-statement disabled). value: institutionUserDisclosures: - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T09:00:00.000-07:00' institutionDisclosureName: TEST_DISCLOSURE_123 - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T08:00:00.000-07:00' paperWaiver: true institutionDisclosureName: OLS InstitutionUserDisclosuresMultiStatementResponse: summary: InstitutionUserDisclosuresMultiStatementResponse description: > Example payload for a list of institution user disclosures (multi-statement enabled). value: institutionUserDisclosures: - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T09:00:00.000-07:00' institutionDisclosureName: TEST_DISCLOSURE_123 - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T08:00:00.000-07:00' institutionDisclosureName: OLS - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T10:00:00.000-07:00' paperWaiver: true accountId: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ institutionDisclosureName: OLS '400': $ref: '#/components/responses/UserDisclosuresError400' '401': $ref: '#/components/responses/UserDisclosuresError401' '500': $ref: '#/components/responses/UserDisclosuresError500' '501': $ref: '#/components/responses/UserDisclosuresError501' x-position: 1 post: tags: - User Disclosures summary: Create User Disclosure description: > Creates or persists a user‑level disclosure record for the authenticated user within the financial institution. This endpoint records a user’s acceptance or enrollment state for an institution disclosure, supporting online statement disclosures, and custom disclosure types, and routes persistence to the appropriate downstream system. **Use this endpoint to:** - Create user‑level disclosure records for custom institution disclosures and record the user’s acceptance or enrollment status. - Create and update user‑level and account‑level records for online statement (OLS) disclosures and record the user’s acceptance status. **Behavior and capabilities:** - Validates the request for required fields, disclosure identifiers or names, account context, and supported disclosure status values before processing. - Routes persistence to the appropriate downstream system based on disclosure type and request content, using institution and user context derived from the access token. - Supports Business Banking and retail users, applying institution customer context validation rules when required. operationId: createUserDisclosureV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/UserDisclosuresInstitutionCustomerId' - name: accountType in: query required: false description: > The type of account associated with the disclosure. Required for online multi-statement disclosure. schema: $ref: '#/components/schemas/AccountType2' requestBody: required: true description: > Request payload used to create a user disclosure or update OLS disclosure. content: application/json: schema: $ref: '#/components/schemas/InstitutionUserDisclosureCreateRequest' examples: CustomUserDisclosureCreateRequest: summary: CustomUserDisclosureCreateRequest description: Custom user disclosure create request value: institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionDisclosureName: TEST_DISCLOSURE_123 institutionUserDisclosureStatus: ACCEPTED OnlineStatementUserDisclosureCreateRequest: summary: OnlineStatementUserDisclosureCreateRequest description: Online statement user disclosure create request value: institutionDisclosureName: OLS accountId: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ institutionUserDisclosureStatus: ACCEPTED paperWaiver: true responses: '204': description: No Content '400': $ref: '#/components/responses/UserDisclosuresError400' '401': $ref: '#/components/responses/UserDisclosuresError401' '500': $ref: '#/components/responses/UserDisclosuresError500' '501': $ref: '#/components/responses/UserDisclosuresError501' x-position: 2 put: tags: - User Disclosures summary: Update Custom User Disclosure description: > Updates the acceptance or enrollment state of a **custom user disclosure** for the authenticated user. This endpoint applies changes to an existing user disclosure record and routes the update to the appropriate backend system based on the disclosure type. **Use this endpoint to:** - Update a user’s acceptance or enrollment status for **custom institution disclosures**. - Record changes to disclosure status for supported system‑level disclosures such as Internet Banking (IB) or e‑sign (ESIGN), where applicable. - Maintain accurate user disclosure state for downstream features and compliance needs. **Behavior and capabilities:** - Validates the request body for required identifiers, supported disclosure statuses, and field constraints before processing. - Routes updates to the appropriate downstream system based on disclosure type: - e‑sign (ESIGN) status is updated to reflect an accepted or not‑accepted state. - All other custom disclosures update (not ESIGN or IB) require a `institutionDisclosureId` to be present in the request body. - User-level and account-level online statement (OLS) updates are not supported by this endpoint. - Supports both retail and Business Banking users, enforcing institution customer context rules where required. operationId: updateUserDisclosureV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/UserDisclosuresInstitutionCustomerId' requestBody: required: true description: | Request payload used to update a custom user disclosure. content: application/json: schema: $ref: '#/components/schemas/InstitutionUserDisclosureUpdateRequest' examples: UpdateCustomUserDisclosureRequest: summary: UpdateCustomUserDisclosureRequest description: >- Institution user disclosure update request for a custom disclosure value: institutionUserDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionDisclosureName: TEST_DISCLOSURE_123 responses: '204': description: No Content '400': $ref: '#/components/responses/UserDisclosuresError400' '401': $ref: '#/components/responses/UserDisclosuresError401' '500': $ref: '#/components/responses/UserDisclosuresError500' '501': $ref: '#/components/responses/UserDisclosuresError501' x-position: 3 delete: tags: - User Disclosures summary: Delete Online Statement User Disclosure description: > Deletes the user’s online statement (OLS) disclosure enrollment for a specific account by removing the associated OLS disclosure record. **Use this endpoint to:** - Remove a user’s online statement (OLS) disclosure enrollment for a specific account. - Revoke account‑level acceptance of online statements when the user opts out. - Support user or operational flows that require discontinuing OLS for an account. **Behavior and capabilities:** - Supports deletion **only** for online statement disclosures (`institutionDisclosureName = OLS`). - Requires `accountId` in the request body and a valid `accountType` query parameter. - Deletes the corresponding user disclosure record for the specified account. - Validates institution customer context for Business Banking users and derives customer context from the access token for retail users. operationId: deleteUserDisclosureV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/LoginId' - $ref: '#/components/parameters/UserDisclosuresInstitutionCustomerId' - name: accountType in: query required: true description: | The type of account associated with the disclosure. schema: $ref: '#/components/schemas/AccountType2' requestBody: required: true description: | Request payload used to delete an account-specific OLS disclosure. content: application/json: schema: $ref: '#/components/schemas/InstitutionUserDisclosureDeleteRequest' examples: DeleteOnlineStatementUserDisclosureRequest: summary: DeleteOnlineStatementUserDisclosureRequest description: > Institution user disclosure delete request for an online statement disclosure value: institutionDisclosureName: OLS accountId: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ responses: '204': description: No Content '400': $ref: '#/components/responses/UserDisclosuresError400' '401': $ref: '#/components/responses/UserDisclosuresError401' '500': $ref: '#/components/responses/UserDisclosuresError500' '501': $ref: '#/components/responses/UserDisclosuresError501' x-position: 4 /v3/groups: post: tags: - Experience Groups summary: Create Experience Group description: > Creates a new experience group for segmenting retail banking users for targeted experiences, campaigns, or feature rollouts. **Use this endpoint to:** - Create an experience group before uploading participants. - Define a group name and optional description for audience targeting. - Establish a group that can be managed later through update, delete, and participant upload endpoints. **Behavior and capabilities:** - `groupName` is required, must be unique within the institution, and cannot exceed 50 characters. - `groupDescription` is optional and cannot exceed 450 characters. - If not specified, `groupType` defaults to `EXPERIENCE_GROUP`. - If not specified, `groupPlatform` defaults to `RETAIL_BANKING`. - A successful request returns the created group, including its generated groupId and an initial groupParticipantCount value of 0. ### Next Steps After creating a group, use the [Upload Experience Group Participants](/api/generated/upload-experience-group-participants-v-3/) endpoint to upload a CSV file containing participant member numbers to the group. operationId: createExperienceGroupV3 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' requestBody: required: true description: > Request payload used to create a new Experience Group with a name, optional description, type, and platform. content: application/json: schema: $ref: '#/components/schemas/ExperienceGroupRequest' examples: CreateExperienceGroupRequest: summary: CreateExperienceGroupRequest description: > Create an experience group with name, description, type, and platform. value: groupName: Test New Feature groupDescription: This group is used to test the new feature. groupType: EXPERIENCE_GROUP groupPlatform: RETAIL_BANKING responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ExperienceGroupResponse' examples: CreateExperienceGroupResponse: summary: CreateExperienceGroupResponse description: >- Response returned when an Experience Group is successfully created. value: groupId: 9d551eeb-3254-4ac4-b449-668b374f4066 groupName: Test New Feature groupDescription: This group is used to test the new feature. groupType: EXPERIENCE_GROUP groupPlatform: RETAIL_BANKING groupLastUpdatedDateTime: '2026-07-23T16:19:00.613Z' groupParticipantCount: 0 groupStatus: ACTIVE '400': $ref: '#/components/responses/ExperienceGroupsError400' '401': $ref: '#/components/responses/ExperienceGroupsError401' '500': $ref: '#/components/responses/ExperienceGroupsError500' x-position: 2 get: tags: - Experience Groups summary: List Experience Groups description: > Retrieves a paginated list of active experience groups for the authenticated institution, including participant counts for each group. ### Use this endpoint to - View available experience groups for campaigns, targeted experiences, and feature rollouts. - Review group membership counts before managing participants. - Navigate large collections of groups using pagination. **Behavior and capabilities:** - Returns only active experience groups for the authenticated institution. - Each group includes key details such as groupId, groupName, groupType, and noOfParticipants. - Supports pagination through the page and size query parameters. - Supports result sorting through the sort query parameter. - Response includes group resources in `_embedded`, navigation links (`first`, `self`, `next`, `last`) in `_links`, and pagination details in `page`. operationId: listExperienceGroupsV3 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - name: page in: query required: false description: Zero-based page index. Defaults to `0`. schema: type: integer format: int32 default: 0 example: 0 - name: size in: query required: false description: > Number of experience groups to return per page. Must be greater than `0`. Defaults to `20`. schema: type: integer format: int32 default: 20 example: 10 - name: sort in: query required: false description: > Sort results by a supported property and optional direction (`asc` or `desc`). Supported properties are `groupId`, `groupName`, and `groupType.groupTypeName`. schema: type: string example: 'groupName,asc' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ExperienceGroupsResponse' examples: ListExperienceGroupsResponse: summary: ListExperienceGroupsResponse description: > Paginated response containing active Experience Groups, participant counts, and pagination links. value: _embedded: groupsWithParticipantsCountList: - groupId: 6dec7bda-e26c-411e-bea0-3b274bb7e5cc groupName: AIC_AUTOMATION_USERS_GRP groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 9cae3fa6-7e23-4d57-8576-ecb44a7efd21 groupName: AIC_TEST_USERS groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: cf7a7eae-6890-4269-94b7-5a0c092010f7 groupName: AITESTGROUP groupType: EXPERIENCE_GROUP noOfParticipants: 0 - groupId: 19ac94f0-a2f0-4064-8a51-121cbcd8cba7 groupName: AW groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: cb080e54-48a5-45b7-94f0-079801d7ec7f groupName: AcctGrouping groupType: EXPERIENCE_GROUP noOfParticipants: 3 - groupId: d80f9f91-150e-4b96-826c-d6336d8811e8 groupName: AkshayTest groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 8ed30b1e-6772-4c1e-8e63-9612d2e372ab groupName: Allowed Users Group groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 831c2ab1-7f21-4159-bbde-a4e257c3dfa0 groupName: BAURetail groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 7d8b76ed-5e4e-40bb-af1e-7487bf258c86 groupName: BB Phoenix Auto Off groupType: EXPERIENCE_GROUP noOfParticipants: 3 - groupId: 50ae2401-8a51-4ca7-864e-2b56f627d1ca groupName: BB Test Group groupType: EXPERIENCE_GROUP noOfParticipants: 0 _links: first: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=0&size=10&sort=groupName,asc prev: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=0&size=10&sort=groupName,asc self: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=1&size=10&sort=groupName,asc next: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=2&size=10&sort=groupName,asc last: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=14&size=10&sort=groupName,asc page: size: 10 totalElements: 145 totalPages: 15 number: 1 '401': $ref: '#/components/responses/ExperienceGroupsError401' '500': $ref: '#/components/responses/ExperienceGroupsError500' x-position: 1 '/v3/groups/{groupId}': put: tags: - Experience Groups summary: Update Experience Group description: > Updates the name and description of an existing experience group identified by `groupId`. **Use this endpoint to:** - Rename an experience group used for campaigns, targeted experiences, or feature rollouts. - Add, update, or remove the group description. - Maintain group metadata without affecting participant membership. **Behavior and capabilities:** - `groupName` is required, must be unique within the institution, and cannot exceed 50 characters. - `groupDescription` is optional and cannot exceed 450 characters. Omit `groupDescription` from the request to remove the existing description. - `groupType` and `groupPlatform` are immutable and cannot be modified after group creation. - Updating a group does not add, remove, or modify participants. operationId: updateExperienceGroupV3 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/GroupId' requestBody: required: true description: > Updated experience group details. `groupName` is required. To remove an existing description, omit `groupDescription` from the request. `groupType` and `groupPlatform` are immutable and cannot be updated. content: application/json: schema: $ref: '#/components/schemas/ExperienceGroupRequest' examples: UpdateExperienceGroupRequest: summary: UpdateExperienceGroupRequest description: > Request payload used to update an existing Experience Group. Only the group name and description can be modified. The group type and platform are immutable and must not be included in the update request. value: groupName: Test New Feature groupDescription: Update description for new feature testing. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ExperienceGroupResponse' examples: UpdateExperienceGroupResponse: summary: UpdateExperienceGroupResponse description: >- Response returned when an Experience Group is successfully updated. value: groupId: 9d551eeb-3254-4ac4-b449-668b374f4066 groupName: Test New Feature groupDescription: Update description for new feature testing. groupType: EXPERIENCE_GROUP groupPlatform: RETAIL_BANKING groupLastUpdatedDateTime: '2026-07-23T18:43:52.504Z' groupParticipantCount: 0 groupStatus: ACTIVE '400': $ref: '#/components/responses/ExperienceGroupsError400' '401': $ref: '#/components/responses/ExperienceGroupsError401' '500': $ref: '#/components/responses/ExperienceGroupsError500' x-position: 3 delete: tags: - Experience Groups summary: Delete Experience Group description: > Permanently deletes an experience group identified by `groupId`, including all associated participant memberships and import job data. This action cannot be undone. **Use this endpoint to:** - Remove an experience group that is no longer needed. - Clean up unused groups and related data. - Delete a group and all associated participant memberships in a single operation. **Behavior and capabilities:** - The specified group must exist and be eligible for deletion. - All participant memberships associated with the group are permanently removed. - All import job data associated with the group is deleted and can no longer be accessed. - Deleting a group does not affect other experience groups or their participants. - On success, the API returns a confirmation message with the deleted `groupId`. operationId: deleteExperienceGroupV3 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/GroupId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DeleteExperienceGroupResponse' examples: DeleteExperienceGroupResponse: summary: DeleteExperienceGroupResponse description: >- Response returned when an Experience Group is successfully deleted. value: code: '1000' message: >- groupId 9d551eeb-3254-4ac4-b449-668b374f4066 was successfully deleted '400': $ref: '#/components/responses/ExperienceGroupsError400' '401': $ref: '#/components/responses/ExperienceGroupsError401' '500': $ref: '#/components/responses/ExperienceGroupsError500' x-position: 4 '/v3/groups/{groupId}/participants': put: tags: - Experience Groups summary: Upload Experience Group Participants description: > Uploads a CSV file of retail banking member numbers to add, remove, or replace participants in an existing experience group. Participant updates are processed asynchronously as an import job. **Use this endpoint to:** - Add participants to an experience group from a CSV file. - Remove participants from an experience group using a CSV file. - Replace all existing participants in an experience group with a new participant list. **Behavior and capabilities:** - Requires multipart form data containing an upload `type` (`ADD`, `REMOVE`, or `REPLACE`) and a CSV file. - The CSV file must include a `ParticipantId` column. Each `ParticipantId` value represents a retail banking member number and must not exceed 32 characters. - Supported file content types are `text/csv` and `application/vnd.ms-excel`. - Only one import job can run for an experience group at a time. Upload requests are rejected while another import job is in progress. - On success, the API creates an import job and returns its `jobId` and initial `jobStatus` (`CREATED`). Use the [Get Job by ID](/api/generated/get-job-v-3/) endpoint to monitor job status and results. operationId: uploadExperienceGroupParticipantsV3 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/GroupId' requestBody: required: true description: > Multipart form data containing the participant upload operation and CSV file. - `type` is required and must be one of `ADD`, `REMOVE`, or `REPLACE`. - `fileName` is required and must contain a CSV file. - The CSV file must include a `ParticipantId` column. Each value is a retail banking member number and must not exceed 32 characters. - Supported file content types are `text/csv` and `application/vnd.ms-excel`. Example CSV content for `fileName` (`participants.csv`): ```csv ParticipantId 202510091 ``` content: multipart/form-data: schema: $ref: '#/components/schemas/UploadExperienceGroupParticipantsRequest' encoding: fileName: contentType: text/csv examples: UploadExperienceGroupParticipantsRequest: summary: UploadExperienceGroupParticipantsRequest description: > Multipart form-data request used to upload participant membership changes. The uploaded CSV file must contain a `ParticipantId` column with one participant identifier per row. The `type` field specifies whether participants should be added, removed, or replaced. value: type: ADD fileName: participants.csv responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/UploadExperienceGroupParticipantsResponse' examples: UploadExperienceGroupParticipantsResponse: summary: UploadExperienceGroupParticipantsResponse description: > Response returned when a participant upload is accepted and an import job is successfully created. value: code: '1000' message: >- File upload for file: participants.csv and group: cc8e0de6-b556-4974-9c70-7d3f9cb58fb8 was successful with jobId: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobId: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobStatus: CREATED '400': $ref: '#/components/responses/ExperienceGroupsError400' '401': $ref: '#/components/responses/ExperienceGroupsError401' '500': $ref: '#/components/responses/ExperienceGroupsError500' x-position: 5 '/v3/jobs/{jobId}/errors': get: summary: Get Job Errors description: > Retrieves errors associated with a specific job. Use this endpoint to troubleshoot failed user imports or other batch operations. **Error Details Include:** - `lineNbr`: The line number in the uploaded CSV where the error occurred - `errorMsg`: Description of the validation or processing error **Common Error Messages:** - "ParticipantId cannot be larger than 32 characters" - "Invalid participant ID format" - "Duplicate participant ID" **Pagination:** Use `page` and `size` parameters to paginate through error results for large failed imports. operationId: getJobErrorsV3 tags: - Jobs parameters: - name: jobId in: path required: true schema: type: string - name: pageable in: query required: false schema: $ref: '#/components/schemas/Pageable' - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BasePageDTOListImportJobErrorDTO' example: links: - rel: first href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/ca861d80-fce4-4996-af64-b20625847ee2/errors?page=0&size=5 - rel: self href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/ca861d80-fce4-4996-af64-b20625847ee2/errors?page=0&size=5 - rel: next href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/ca861d80-fce4-4996-af64-b20625847ee2/errors?page=1&size=5 - rel: last href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/ca861d80-fce4-4996-af64-b20625847ee2/errors?page=2&size=5 content: - lineNbr: 2 errorMsg: ParticipantId cannot be larger than 32 characters links: [] - lineNbr: 3 errorMsg: ParticipantId cannot be larger than 32 characters links: [] - lineNbr: 4 errorMsg: ParticipantId cannot be larger than 32 characters links: [] - lineNbr: 5 errorMsg: ParticipantId cannot be larger than 32 characters links: [] - lineNbr: 6 errorMsg: ParticipantId cannot be larger than 32 characters links: [] page: size: 5 totalElements: 11 totalPages: 3 number: 0 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2000' message: jobId 1f573aa9-3a76-46b3-aa14-5806331b7f20 not found '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2003' message: Invalid Authorization '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2001' message: additional details may be available in server logs x-position: 3 '/v3/jobs/{jobId}': get: summary: Get Job by ID description: > Retrieves the status and details of a specific job. Use this endpoint to monitor the progress of user imports or other batch operations. **Job Status Values:** - `CREATED`: Job queued for processing - `PROCESSING`: Currently processing records - `SUCCESSFUL`: All records processed without errors - `PARTIAL_SUCCESS`: Some records succeeded, others failed - `FAILED`: Job failed to complete For failed or partial success jobs, use GET `/v3/jobs/{jobId}/errors` to retrieve error details. operationId: getJobV3 tags: - Jobs parameters: - name: jobId in: path required: true schema: type: string - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ImportJobDTOSingle' example: jobId: 2f573aa9-3a76-46b3-aa14-5806331b7f20 groupId: 95f709f2-0781-4ba7-abb0-e6f5e302a49a groupName: MyGroupName groupType: EXPERIENCE_GROUP inputFileName: mygroupnameUsersList.csv workingFileName: >- /Data/qa/15/04715/experience_groups/95f70-1560545733364-mygroupnameUsersList.csv type: REPLACE totalRecordsCount: 18 successRecordsCount: 8 failedRecordsCount: 10 jobDetails: Partial Success. See detailed report. jobStatus: PARTIAL_SUCCESS jobCreatedBy: someName createdDateTime: '2022-06-14T20:55:35.722Z' lastUpdatedDateTime: '2022-06-14T20:55:47.386Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2003' message: Invalid Authorization '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2001' message: additional details may be available in server logs x-position: 2 /v3/jobs: get: summary: List Jobs description: > Retrieves a paginated list of jobs. Jobs represent batch operations such as user imports. Filter by group ID to see jobs for a specific group. **Filtering:** - Use the optional `groupId` query parameter to filter jobs for a specific group **Sorting:** - Results can be sorted using the `sort` parameter (e.g., `insertDateTime,desc`) - Default sort is by most recent jobs first operationId: listJobsV3 tags: - Jobs parameters: - name: pageable in: query required: false schema: $ref: '#/components/schemas/Pageable' - name: groupId in: query required: false schema: type: string - $ref: '#/components/parameters/TransactionIdRequest' - $ref: '#/components/parameters/OAuthV2Authorization' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BasePageDTOListImportJobDTO' example: links: - rel: first href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/?page=0&size=1&sort=insertDateTime,desc - rel: self href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/?page=0&size=1&sort=insertDateTime,desc - rel: next href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/?page=1&size=1&sort=insertDateTime,desc - rel: last href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/?page=1333&size=1&sort=insertDateTime,desc content: - jobId: 2604b0a2-d6b2-46d1-82a7-f587eaea3026 groupId: 12a5bc24-4270-43df-8ea4-ad63f1181505 groupName: FIs Ultra Exclusive Groups groupType: EXPERIENCE_GROUP inputFileName: 1500Rows.csv workingFileName: >- /Data/qa/15/04715/experience_groups/12a5b-1561477909100-1500Rows.csv type: ADD totalRecordsCount: 1500 successRecordsCount: 1500 failedRecordsCount: 0 jobStatus: SUCCESSFUL jobCreatedBy: jobÇreator createdDateTime: '2022-06-25T12:51:50.018Z' lastUpdatedDateTime: '2022-06-25T12:52:00.208Z' links: - rel: self href: >- https://ncrdev-dev.apigee.net/digitalbanking/v3/jobs/a85f1c90-6d7f-4678-834a-0185baf368c7 - jobId: ec26476f-1c5a-4168-b13f-c8729078e39f groupId: 12a5bc24-4270-43df-8ea4-ad63f1181505 groupName: FIs Ultra Exclusive Groups groupType: EXPERIENCE_GROUP inputFileName: 100Rows.csv workingFileName: >- /Data/qa/15/04715/experience_groups/12a5b-1561483693273-100Rows.csv type: ADD totalRecordsCount: 99 successRecordsCount: 99 failedRecordsCount: 0 jobStatus: SUCCESSFUL jobCreatedBy: jobCreator createdDateTime: '2022-06-25T21:28:16.024Z' lastUpdatedDateTime: '2022-06-25T21:29:53.789Z' page: size: 2 totalElements: 28 totalPages: 14 number: 0 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2003' message: Invalid Authorization '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: '2001' message: additional details may be available in server logs x-position: 1 '/pss/v1/fis/{fiId}/audiences/userListJobs': post: summary: Create User List Upload Job description: >- Enqueues a job for uploading a user list with the given name to Promotion Suite, returning a job ID. The job then completes later, at which point the user list is visible as a target audience in Promotion Suite. This is an alternative to uploading a user list in the Promotion Suite UI and waiting for the upload to complete before being able to do anything else in it. operationId: createUserListV1 tags: - Promotions Suite parameters: - name: fiId in: path description: Identifies the financial institution required: true schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request. If not provided, the IP address logged will be extracted from the HTTP request. schema: type: string requestBody: description: >- The name of the user list and the member IDs of the users it will contain. content: application/json: schema: $ref: '#/components/schemas/UserList' required: true responses: '202': description: >- The job ID of the successfully enqueued user list upload job. **Note:** The current iteration of the system always returns `"None"`. content: application/json: schema: $ref: '#/components/schemas/UploadResponse' '400': description: >- Returned when the submitted request does not match the requirements defined in the specification. The provided error message will tell you more. content: application/json: schema: $ref: '#/components/schemas/Error3' '401': description: >- There was an authorization error. Check that the supplied credentials are correct. content: application/json: schema: $ref: '#/components/schemas/Error3' '429': description: >- The system is currently too busy processing other user list upload jobs. Try again later. content: application/json: schema: $ref: '#/components/schemas/Error3' '500': description: An unexpected error occurred while handling the request. content: application/json: schema: $ref: '#/components/schemas/Error3' x-codegen-request-body-name: body x-position: 2 '/pss/v1/fis/{fiId}/audiences/userListJobs/{jobId}': get: summary: Get User List Upload Status description: >- Gets the status of a user list upload job, showing its current state and progress. operationId: getUserListStatusV1 tags: - Promotions Suite parameters: - name: fiId in: path description: Identifies the financial institution required: true schema: type: string - name: jobId in: path description: >- The ID of the user list upload job to check. A job ID is returned in the response of a successful request to enqueue a user list upload job required: true schema: type: string - $ref: '#/components/parameters/OAuthV1Authorization' - $ref: '#/components/parameters/DITidRequest' - name: originating_ip in: header description: >- The IP address of the device making the request. If not provided, the IP address logged will be extracted from the HTTP request. schema: type: string responses: '200': description: 'Status of the User List Upload Job, for the supplied jobId' content: application/json: schema: $ref: '#/components/schemas/JobUploadStatus' '400': description: >- Returned when the submitted request does not match the requirements defined in the specification. The provided error message will tell you more. content: application/json: schema: $ref: '#/components/schemas/Error3' '401': description: >- There was an authorization error. Check that the supplied credentials are correct. content: application/json: schema: $ref: '#/components/schemas/Error3' '429': description: >- The system is currently too busy processing other user list upload jobs. Try again later. content: application/json: schema: $ref: '#/components/schemas/Error3' '500': description: An unexpected error occurred while handling the request. content: application/json: schema: $ref: '#/components/schemas/Error3' x-position: 1 /v1/userlists: get: summary: Get User List Details description: >- Gets user list details corresponding to the viewName, userlistFileName specified operationId: getUserListDetailsV1 tags: - Audience parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - in: header name: Content-Type schema: type: string description: >- The data format the client expects to receive in the response. Currently the only supported value `application/json`. example: application/json - name: userlistFileName in: query required: true schema: type: string - name: viewName in: query required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserListsFileResponse' examples: fileStatus: value: userLists: - fileMetadata: userlistFileName: FI04175_MetaData_20220315161127.csv userlistName: UserList15Mar userlistOperation: CREATE userlistDescription: Either MemberId's or GUID's fileStatus: succeededUserCount: 0 jobStatusMessage: Processing Job not yet created. userCount: 0 failedUserCount: 0 description: Response for viewName=fileStatus request. fileErrorReport: value: userLists: - fileMetadata: userlistFileName: FI04715_SuccessFile_20220315161120.csv userlistName: UserListWithAccessToken_15Mar_2 userlistOperation: CREATE userlistDescription: create user list with valid access token fileErrorReport: message: Error Report will not available for this file description: Response for a viewName=fileErrorReport request '400': description: Bad request sent content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 1 post: summary: Create User List Metadata description: Metadata for the file uploaded through SFTP operationId: createUserListMetadataV1 tags: - Audience parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/TransactionIdRequest' - in: header name: Content-Type schema: type: string description: >- The data format the client expects to receive in the response. Currently the only supported value `application/json`. example: application/json requestBody: content: application/json: schema: $ref: '#/components/schemas/UserListsDTO' examples: Request: value: userLists: - fileMetadata: userlistFileName: FI04175_MetaData_20220315161127.csv userlistName: UserList15Mar userlistDescription: Either MemberId's or GUID's userlistOperation: CREATE responses: '200': description: Successful response - Empty Response in body '400': description: Bad request sent content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-position: 2 '/mx/{mxPlatformResourcePath}': get: tags: - MX Platform summary: Passthrough Read description: > Transparent passthrough for **GET** requests to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api). The service provides RESTful operations for **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, and related resources; endpoint paths, headers, query parameters, and response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Platform **GET** APIs to retrieve **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, **budgets**, **categories**, **goals**, **insights**, **investment holdings**, **taggings**, **transaction rules**, and **widgets** (for example, listing users or retrieving an account, member, or transaction by ID). - Access aggregated and enhanced financial data from external institutions connected through MX, including balances, transaction history, categorization, and account details to support connect, aggregation, and personalized financial experiences. - Request JSON response bodies using `Accept: application/json` with `Accept-Version: v20250224` (or `v20111101` for legacy endpoints), or `application/vnd.mx.api.v1+json` when specified for the target operation (for example, user list operations). - Access MX Platform read operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, correlationId, and ext_host; replaces the Authorization header with MX Basic authentication, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{mxPlatformResourcePath}`, where `mxPlatformResourcePath` corresponds to the MX Platform resource path as defined in the MX documentation. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: getMxPlatformProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxPlatformExtHost' - $ref: '#/components/parameters/MxPlatformAccept' - $ref: '#/components/parameters/MxPlatformAcceptVersion' - $ref: '#/components/parameters/MxPlatformResourcePath' responses: '200': $ref: '#/components/responses/MxPlatformResponseBody' '400': $ref: '#/components/responses/MxPlatformBadRequest' '401': $ref: '#/components/responses/MxPlatformUnauthorized' '403': $ref: '#/components/responses/MxPlatformForbidden' '404': $ref: '#/components/responses/MxPlatformNotFound' '405': $ref: '#/components/responses/MxPlatformMethodNotAllowed' '406': $ref: '#/components/responses/MxPlatformNotAcceptable' '422': $ref: '#/components/responses/MxPlatformUnprocessableEntity' '429': $ref: '#/components/responses/MxPlatformTooManyRequests' '500': $ref: '#/components/responses/MxPlatformInternalServerError' '502': $ref: '#/components/responses/MxPlatformBadGateway' '503': $ref: '#/components/responses/MxPlatformServiceUnavailable' '504': $ref: '#/components/responses/MxPlatformGatewayTimeout' x-position: 1 post: tags: - MX Platform summary: Passthrough Create description: > Transparent passthrough for **POST** requests to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api). The service provides RESTful operations for **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, and related resources; endpoint paths, headers, query parameters, and request/response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Platform **POST** APIs to create **users**, **members**, **accounts**, **transactions**, **budgets**, **categories**, **goals**, **taggings**, **transaction rules**, **widgets**, **microdeposits**, and **jobs** (for example, creating a user or adding a member connection for aggregation). - Provision MX users and dependent resources to support connect, aggregation, and personalized financial experiences across external institutions. - Create dependent resources in the required orchestration order (for example, create a **user** before **members**, then create **accounts** and **transactions** after institution connection and aggregation, as documented by MX). - Submit JSON request bodies with `Content-Type: application/json`, `Accept: application/json`, and `Accept-Version: v20250224` (or `v20111101` for legacy endpoints), or `application/vnd.mx.api.v1+json` when specified for the target operation. - Access MX Platform create operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, correlationId, and ext_host; replaces the Authorization header with MX Basic authentication, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{mxPlatformResourcePath}`, where `mxPlatformResourcePath` corresponds to the MX Platform resource path as defined in the MX documentation. - Forwards all MX-supported headers, paths, query parameters, and request payloads without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: postMxPlatformProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxPlatformExtHost' - $ref: '#/components/parameters/MxPlatformAccept' - $ref: '#/components/parameters/MxPlatformAcceptVersion' - $ref: '#/components/parameters/MxPlatformContentType' - $ref: '#/components/parameters/MxPlatformResourcePath' requestBody: $ref: '#/components/requestBodies/MxPlatformRequestBody' responses: '200': $ref: '#/components/responses/MxPlatformResponseBody' '202': $ref: '#/components/responses/MxPlatformResponseBody' '204': description: No Content '400': $ref: '#/components/responses/MxPlatformBadRequest' '401': $ref: '#/components/responses/MxPlatformUnauthorized' '403': $ref: '#/components/responses/MxPlatformForbidden' '404': $ref: '#/components/responses/MxPlatformNotFound' '405': $ref: '#/components/responses/MxPlatformMethodNotAllowed' '406': $ref: '#/components/responses/MxPlatformNotAcceptable' '409': $ref: '#/components/responses/MxPlatformConflict' '422': $ref: '#/components/responses/MxPlatformUnprocessableEntity' '429': $ref: '#/components/responses/MxPlatformTooManyRequests' '500': $ref: '#/components/responses/MxPlatformInternalServerError' '502': $ref: '#/components/responses/MxPlatformBadGateway' '503': $ref: '#/components/responses/MxPlatformServiceUnavailable' '504': $ref: '#/components/responses/MxPlatformGatewayTimeout' x-position: 2 put: tags: - MX Platform summary: Passthrough Update description: > Transparent passthrough for **PUT** requests to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api). The service provides RESTful operations for **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, and related resources; endpoint paths, headers, query parameters, and request/response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Platform **PUT** APIs to update **users**, **members**, **accounts**, **transactions**, **budgets**, **categories**, **goals**, **taggings**, **transaction rules**, **spending plans**, and **notifications** (for example, updating a user or revising transaction categorization). - Keep MX user, member, and account data current as institution status, credentials, or end-user preferences change, including enhanced data fields such as categorization and insights supported by the MX Platform pipeline. - Submit JSON request bodies with `Content-Type: application/json`, `Accept: application/json`, and `Accept-Version: v20250224` (or `v20111101` for legacy endpoints), or `application/vnd.mx.api.v1+json` when specified for the target operation. - Access MX Platform update operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, correlationId, and ext_host; replaces the Authorization header with MX Basic authentication, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{mxPlatformResourcePath}`, where `mxPlatformResourcePath` corresponds to the MX Platform resource path as defined in the MX documentation. - Forwards all MX-supported headers, paths, query parameters, and request payloads without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: putMxPlatformProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxPlatformExtHost' - $ref: '#/components/parameters/MxPlatformAccept' - $ref: '#/components/parameters/MxPlatformAcceptVersion' - $ref: '#/components/parameters/MxPlatformContentType' - $ref: '#/components/parameters/MxPlatformResourcePath' requestBody: $ref: '#/components/requestBodies/MxPlatformRequestBody' responses: '200': $ref: '#/components/responses/MxPlatformResponseBody' '204': description: No Content '400': $ref: '#/components/responses/MxPlatformBadRequest' '401': $ref: '#/components/responses/MxPlatformUnauthorized' '403': $ref: '#/components/responses/MxPlatformForbidden' '404': $ref: '#/components/responses/MxPlatformNotFound' '405': $ref: '#/components/responses/MxPlatformMethodNotAllowed' '406': $ref: '#/components/responses/MxPlatformNotAcceptable' '409': $ref: '#/components/responses/MxPlatformConflict' '422': $ref: '#/components/responses/MxPlatformUnprocessableEntity' '429': $ref: '#/components/responses/MxPlatformTooManyRequests' '500': $ref: '#/components/responses/MxPlatformInternalServerError' '502': $ref: '#/components/responses/MxPlatformBadGateway' '503': $ref: '#/components/responses/MxPlatformServiceUnavailable' '504': $ref: '#/components/responses/MxPlatformGatewayTimeout' x-position: 3 delete: tags: - MX Platform summary: Passthrough Delete description: > Transparent passthrough for **DELETE** requests to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api). The service provides RESTful operations for **users**, **members**, **institutions**, **accounts**, **transactions**, **statements**, and related resources; endpoint paths, headers, and query parameters are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Platform **DELETE** APIs to remove **users**, **members**, **accounts**, **transactions**, **budgets**, **categories**, **goals**, **taggings**, **transaction rules**, and **notifications** (for example, deleting a user or removing a member connection). - Rely on MX cascading deletion [v20250224](https://docs.mx.com/api-reference/platform-api/overview/deleting-objects) and [v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/overview/deleting-objects): deleting a **member** removes its associated **accounts**, **transactions**, and **holdings**, while deleting a **user** removes all associated **members** and their dependent data. - Deprovision MX users and related data when no longer required for MX-powered digital experiences. Most deleted objects are soft-deleted and purged after a retention period, while user deletions are permanent and cannot be restored through the API. - Access MX Platform delete operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, correlationId, and ext_host; replaces the Authorization header with MX Basic authentication, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{mxPlatformResourcePath}`, where `mxPlatformResourcePath` corresponds to the MX Platform resource path as defined in the MX documentation. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes without modification. operationId: deleteMxPlatformProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxPlatformExtHost' - $ref: '#/components/parameters/MxPlatformAccept' - $ref: '#/components/parameters/MxPlatformAcceptVersion' - $ref: '#/components/parameters/MxPlatformResourcePath' responses: '204': description: No Content '400': $ref: '#/components/responses/MxPlatformBadRequest' '401': $ref: '#/components/responses/MxPlatformUnauthorized' '403': $ref: '#/components/responses/MxPlatformForbidden' '404': $ref: '#/components/responses/MxPlatformNotFound' '405': $ref: '#/components/responses/MxPlatformMethodNotAllowed' '406': $ref: '#/components/responses/MxPlatformNotAcceptable' '422': $ref: '#/components/responses/MxPlatformUnprocessableEntity' '429': $ref: '#/components/responses/MxPlatformTooManyRequests' '500': $ref: '#/components/responses/MxPlatformInternalServerError' '502': $ref: '#/components/responses/MxPlatformBadGateway' '503': $ref: '#/components/responses/MxPlatformServiceUnavailable' '504': $ref: '#/components/responses/MxPlatformGatewayTimeout' x-position: 4 '/mx/{institutionId}/{mxRealTimeResourcePath}': get: tags: - Real Time summary: Passthrough Read description: > Transparent passthrough for **GET** requests to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/). The service provides synchronous CRUD operations for **users**, **members**, **accounts**, **transactions**, and **holdings**; endpoint paths, headers, query parameters, and response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke any MX Real Time **GET** API to retrieve **users**, **members**, **accounts**, **transactions**, or **holdings** (for example, list users or read an account, transaction, or holding by ID). - Read core institution data previously pushed to MX in real time to support reconciliation, verification, or downstream processing in MX-powered digital experiences. - Request JSON or XML response bodies by including a URL extension (for example, `.json` or `.xml`) and a matching `Accept` header (`application/vnd.moneydesktop.mdx.v5+json` or `application/vnd.moneydesktop.mdx.v5+xml`), as documented by MX. - Access MX Real Time read operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX Real Time routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxRealTimeResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: getMxRealTimeProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxRealTimeExtHost' - $ref: '#/components/parameters/MxRealTimeAccept' - $ref: '#/components/parameters/MxRealTimeInstitutionId' - $ref: '#/components/parameters/MxRealTimeResourcePath' responses: '200': $ref: '#/components/responses/MxRealTimeResponseBody' '400': $ref: '#/components/responses/MxRealTimeBadRequest' '401': $ref: '#/components/responses/MxRealTimeUnauthorized' '403': $ref: '#/components/responses/MxRealTimeForbidden' '404': $ref: '#/components/responses/MxRealTimeNotFound' '422': $ref: '#/components/responses/MxRealTimeUnprocessableEntity' '429': $ref: '#/components/responses/MxRealTimeTooManyRequests' '500': $ref: '#/components/responses/MxRealTimeInternalServerError' '502': $ref: '#/components/responses/MxRealTimeBadGateway' '503': $ref: '#/components/responses/MxRealTimeServiceUnavailable' '504': $ref: '#/components/responses/MxRealTimeGatewayTimeout' x-position: 1 post: tags: - Real Time summary: Passthrough Create description: > Transparent passthrough for **POST** requests to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/). The service provides synchronous CRUD operations for **users**, **members**, **accounts**, **transactions**, and **holdings**; endpoint paths, headers, query parameters, and request/response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Real Time **POST** APIs to create **users**, **members**, **accounts**, **transactions**, or **holdings** (all partners create **users**; additional resources support the real-time push of institution core data to MX). - Push current account, transaction, and holding data from institution core systems to MX to power MX digital experiences with up-to-date financial information. - Create dependent resources in the required orchestration order (for example, create a **user** before **members** or **accounts**, and an **account** before **transactions** or **holdings** under that account). - Submit JSON or XML request bodies using a URL extension (for example, `.json` or `.xml`) and a matching `Content-Type` header (`application/vnd.moneydesktop.mdx.v5+json` or `application/vnd.moneydesktop.mdx.v5+xml`), as documented by MX. - Access MX Real Time create operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX Real Time routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxRealTimeResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, query parameters, and request payloads without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: postMxRealTimeProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxRealTimeExtHost' - $ref: '#/components/parameters/MxRealTimeAccept' - $ref: '#/components/parameters/MxRealTimeContentType' - $ref: '#/components/parameters/MxRealTimeInstitutionId' - $ref: '#/components/parameters/MxRealTimeResourcePath' requestBody: $ref: '#/components/requestBodies/MxRealTimeRequestBody' responses: '200': $ref: '#/components/responses/MxRealTimeResponseBody' '400': $ref: '#/components/responses/MxRealTimeBadRequest' '401': $ref: '#/components/responses/MxRealTimeUnauthorized' '403': $ref: '#/components/responses/MxRealTimeForbidden' '404': $ref: '#/components/responses/MxRealTimeNotFound' '409': $ref: '#/components/responses/MxRealTimeConflict' '422': $ref: '#/components/responses/MxRealTimeUnprocessableEntity' '429': $ref: '#/components/responses/MxRealTimeTooManyRequests' '500': $ref: '#/components/responses/MxRealTimeInternalServerError' '502': $ref: '#/components/responses/MxRealTimeBadGateway' '503': $ref: '#/components/responses/MxRealTimeServiceUnavailable' '504': $ref: '#/components/responses/MxRealTimeGatewayTimeout' x-position: 2 put: tags: - Real Time summary: Passthrough Update description: > Transparent passthrough for **PUT** requests to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/). The service provides synchronous CRUD operations for **users**, **members**, **accounts**, **transactions**, and **holdings**; endpoint paths, headers, query parameters, and request/response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Real Time **PUT** APIs to update existing **users**, **members**, **accounts**, **transactions**, or **holdings** (for example, refreshing account balances, correcting transaction details, or revising holding values). - Keep institution core data synchronized with MX in real time as balances, transactions, and holdings change in core banking systems, fulfilling partner responsibility for managing data sent to MX. - Submit JSON or XML request bodies using a URL extension (for example, `.json` or `.xml`) and a matching `Content-Type` header (`application/vnd.moneydesktop.mdx.v5+json` or `application/vnd.moneydesktop.mdx.v5+xml`), as documented by MX. - Access MX Real Time update operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX Real Time routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxRealTimeResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, query parameters, and request payloads without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: putMxRealTimeProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxRealTimeExtHost' - $ref: '#/components/parameters/MxRealTimeAccept' - $ref: '#/components/parameters/MxRealTimeContentType' - $ref: '#/components/parameters/MxRealTimeInstitutionId' - $ref: '#/components/parameters/MxRealTimeResourcePath' requestBody: $ref: '#/components/requestBodies/MxRealTimeRequestBody' responses: '200': $ref: '#/components/responses/MxRealTimeResponseBody' '400': $ref: '#/components/responses/MxRealTimeBadRequest' '401': $ref: '#/components/responses/MxRealTimeUnauthorized' '403': $ref: '#/components/responses/MxRealTimeForbidden' '404': $ref: '#/components/responses/MxRealTimeNotFound' '422': $ref: '#/components/responses/MxRealTimeUnprocessableEntity' '429': $ref: '#/components/responses/MxRealTimeTooManyRequests' '500': $ref: '#/components/responses/MxRealTimeInternalServerError' '502': $ref: '#/components/responses/MxRealTimeBadGateway' '503': $ref: '#/components/responses/MxRealTimeServiceUnavailable' '504': $ref: '#/components/responses/MxRealTimeGatewayTimeout' x-position: 3 delete: tags: - Real Time summary: Passthrough Delete description: > Transparent passthrough for **DELETE** requests to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/). The service provides synchronous CRUD operations for **users**, **members**, **accounts**, **transactions**, and **holdings**; endpoint paths, headers, and query parameters are defined in the MX documentation. **Use this endpoint to:** - Invoke MX Real Time **DELETE** APIs to remove **users**, **members**, **accounts**, **transactions**, or **holdings** (for example, deprovisioning closed accounts or removing stale transaction records). - Rely on MX cascading deletes to automatically remove dependent records (for example, deleting an **account** also removes its **transactions** and **holdings**, eliminating the need to delete child records first). - Deprovision institution data in MX when resources are no longer valid or required for MX-powered digital experiences. - Access MX Real Time delete operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX Real Time routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxRealTimeResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes without modification. operationId: deleteMxRealTimeProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxRealTimeExtHost' - $ref: '#/components/parameters/MxRealTimeAccept' - $ref: '#/components/parameters/MxRealTimeInstitutionId' - $ref: '#/components/parameters/MxRealTimeResourcePath' responses: '204': description: No Content '400': $ref: '#/components/responses/MxRealTimeBadRequest' '401': $ref: '#/components/responses/MxRealTimeUnauthorized' '403': $ref: '#/components/responses/MxRealTimeForbidden' '404': $ref: '#/components/responses/MxRealTimeNotFound' '429': $ref: '#/components/responses/MxRealTimeTooManyRequests' '500': $ref: '#/components/responses/MxRealTimeInternalServerError' '502': $ref: '#/components/responses/MxRealTimeBadGateway' '503': $ref: '#/components/responses/MxRealTimeServiceUnavailable' '504': $ref: '#/components/responses/MxRealTimeGatewayTimeout' x-position: 4 '/mx/{mxReportingResourcePath}': get: tags: - Reporting summary: Passthrough Read description: > Transparent passthrough for **GET** requests to the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/). The service provides a RESTful interface to retrieve change data for MX user resources, removing the need to query each user individually. Change files are requested by **date**, **resource**, and **action**, and are delivered as **Avro** files with embedded schema metadata. Endpoint paths, headers, query parameters, and response schemas are defined in the MX documentation. **Use this endpoint to:** - Download daily MX change files for supported combinations of **date**, **resource type**, and **action**. - Daily change files are generated once per day and remain available for up to seven days. - If no data exists for a given resource on a specific day, MX returns an **Avro** file containing headers only, with no data records. - A `410 Gone` response indicates that the requested daily file is no longer available. - List or retrieve institution snapshot files. - Access MX Reporting read operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX Reporting routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{mxReportingResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes and Avro (or empty Avro header-only) response payloads without modification. operationId: getMXReportingProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxReportingExtHost' - $ref: '#/components/parameters/MxReportingAccept' - $ref: '#/components/parameters/MxReportingResourcePath' responses: '200': $ref: '#/components/responses/MxReportingAvroResponse' '400': $ref: '#/components/responses/MxReportingBadRequest' '401': $ref: '#/components/responses/MxReportingUnauthorized' '403': $ref: '#/components/responses/MxReportingForbidden' '404': $ref: '#/components/responses/MxReportingNotFound' '410': $ref: '#/components/responses/MxReportingGone' '429': $ref: '#/components/responses/MxReportingTooManyRequests' '500': $ref: '#/components/responses/MxReportingInternalServerError' '502': $ref: '#/components/responses/MxReportingBadGateway' '503': $ref: '#/components/responses/MxReportingServiceUnavailable' '504': $ref: '#/components/responses/MxReportingGatewayTimeout' x-position: 1 '/mx/{institutionId}/{mxSsoResourcePath}': get: tags: - SSO summary: Passthrough Read description: > Transparent passthrough for **GET** requests to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/). The service provides a RESTful interface for authenticating users on the MX platform; endpoint paths, headers, query parameters, and response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX SSO **GET** APIs to authenticate users on the MX platform—for example, retrieve a widget URL without configuration options or obtain a single-use `api_token` to open a Nexus API session. Response bodies support JSON or XML encoding via the `Accept` header and URL extension (`.json` or `.xml`). - Obtain widget URLs for MX Personal Finance Management (PFM) and Financial Insights experiences to authenticate users to MoneyMap components and embed those experiences in a **webview** or **iframe** without exposing long-lived credentials. Issued widget URLs and API tokens are single-use and expire after 10 minutes; request a new URL or token for each authentication or widget reload. - MX recommends the configurable widget URL endpoint because the list urls endpoint is slower, requires parsing multiple URLs from the response, and does not include newly released widgets. - Access MX SSO read operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MX SSO routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxSsoResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: getMxSsoProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxSsoExtHost' - $ref: '#/components/parameters/MxSsoAccept' - $ref: '#/components/parameters/MxSsoInstitutionId' - $ref: '#/components/parameters/MxSsoResourcePath' responses: '200': $ref: '#/components/responses/MxSsoResponseBody' '400': $ref: '#/components/responses/MxSsoBadRequest' '401': $ref: '#/components/responses/MxSsoUnauthorized' '403': $ref: '#/components/responses/MxSsoForbidden' '404': $ref: '#/components/responses/MxSsoNotFound' '429': $ref: '#/components/responses/MxSsoTooManyRequests' '500': $ref: '#/components/responses/MxSsoInternalServerError' '502': $ref: '#/components/responses/MxSsoBadGateway' '503': $ref: '#/components/responses/MxSsoServiceUnavailable' '504': $ref: '#/components/responses/MxSsoGatewayTimeout' x-position: 1 post: tags: - SSO summary: Passthrough Create description: > Transparent passthrough for **POST** requests to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/). The service provides a RESTful interface for authenticating users on the MX platform; endpoint paths, headers, query parameters, and request/response schemas are defined in the MX documentation. **Use this endpoint to:** - Invoke MX SSO **POST** APIs to authenticate users on the MX platform—the primary use case is the **get configurable widget URL** endpoint, which MX recommends over the deprecated list urls endpoint (see **GET**) for both testing and production. Pass widget-specific configuration in the request body and set matching `Accept` and `Content-Type` headers (`application/vnd.moneydesktop.sso.v3+json` or `application/vnd.moneydesktop.sso.v3+xml`), along with a URL extension (`.json` or `.xml`) as required by the target endpoint. - Obtain embeddable widget URLs for MX Personal Finance Management (PFM), Financial Insights, and other supported widget types with per-request options such as `deep_link_params`, `style`, `use_cases`, or Connect Widget parameters. The configurable widget URL endpoint returns responses faster than list urls and always includes a `url` field; issued URLs are single-use and expire 10 minutes after creation. - Submit request payloads for other MX SSO create operations to authenticate users or provision SSO resources, as defined in the MX documentation. - Access MX SSO create operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects the `MD-API-KEY` for MX SSO routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxSsoResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, query parameters, and request payloads without modification. - Returns MX HTTP status codes and response payloads without modification. operationId: postMxSsoProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxSsoExtHost' - $ref: '#/components/parameters/MxSsoAccept' - $ref: '#/components/parameters/MxSsoContentType' - $ref: '#/components/parameters/MxSsoInstitutionId' - $ref: '#/components/parameters/MxSsoResourcePath' requestBody: $ref: '#/components/requestBodies/MxSsoRequestBody' responses: '200': $ref: '#/components/responses/MxSsoResponseBody' '400': $ref: '#/components/responses/MxSsoBadRequest' '401': $ref: '#/components/responses/MxSsoUnauthorized' '403': $ref: '#/components/responses/MxSsoForbidden' '404': $ref: '#/components/responses/MxSsoNotFound' '429': $ref: '#/components/responses/MxSsoTooManyRequests' '500': $ref: '#/components/responses/MxSsoInternalServerError' '502': $ref: '#/components/responses/MxSsoBadGateway' '503': $ref: '#/components/responses/MxSsoServiceUnavailable' '504': $ref: '#/components/responses/MxSsoGatewayTimeout' x-position: 2 delete: tags: - SSO summary: Passthrough Delete description: > Transparent passthrough for **DELETE** requests to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/). The service provides a RESTful interface for authenticating users on the MX platform; endpoint paths, headers, and query parameters are defined in the MX documentation. **Use this endpoint to:** - Invoke MX SSO **DELETE** APIs to end authenticated user sessions on the MX platform — the primary use case is **delete user session**, which closes all open sessions for the specified user. - Call this operation when a user signs out of your application or when you need to revoke active MX SSO sessions (for example, after credential changes or account closure). - Access MX SSO delete operations through the Candescent API Gateway instead of calling MX directly. **Behavior and capabilities:** - The gateway validates the OAuth V2 bearer token, `correlationId`, and `ext_host`, injects `MD-API-KEY` for MXSSO routing, and removes Candescent-specific headers before forwarding the request to MX. - Proxies requests using the path `/mx/{institutionId}/{mxSsoResourcePath}`, where `institutionId` corresponds to the MX `client_id` (used in MX paths such as `/{client_id}/...`), must match the value in the OAuth V2 token, and is used when forwarding requests to MX. - Forwards all MX-supported headers, paths, and query parameters without modification. - Returns MX HTTP status codes without modification. operationId: deleteMxSsoProxyV1 parameters: - $ref: '#/components/parameters/OAuthV2Authorization' - $ref: '#/components/parameters/CorrelationIdRequest' - $ref: '#/components/parameters/MxSsoExtHost' - $ref: '#/components/parameters/MxSsoAccept' - $ref: '#/components/parameters/MxSsoInstitutionId' - $ref: '#/components/parameters/MxSsoResourcePath' responses: '204': description: No Content '400': $ref: '#/components/responses/MxSsoBadRequest' '401': $ref: '#/components/responses/MxSsoUnauthorized' '403': $ref: '#/components/responses/MxSsoForbidden' '404': $ref: '#/components/responses/MxSsoNotFound' '429': $ref: '#/components/responses/MxSsoTooManyRequests' '500': $ref: '#/components/responses/MxSsoInternalServerError' '502': $ref: '#/components/responses/MxSsoBadGateway' '503': $ref: '#/components/responses/MxSsoServiceUnavailable' '504': $ref: '#/components/responses/MxSsoGatewayTimeout' x-position: 3 components: schemas: RequestTraceId: type: string format: uuid description: >- UUID used to trace and correlate requests across services for debugging and logging. Clients must send a unique value for each request. example: f8187c63-678f-4f0c-9263-46723794661a Status: type: object description: > Standard error response returned when the service is unable to process a request. It includes an optional high-level message and one or more structured error details that describe the cause of the failure. required: - errorInfo xml: name: Status namespace: 'http://schema.intuit.com/fs/common/v2' properties: statusMessage: type: string description: > Optional readable summary of the overall error condition. Detailed and actionable error messages are provided in the `errorInfo`. example: Form param 'grant_type' invalid errorInfo: type: array description: > List of structured error objects providing detailed information about one or more errors that occurred while processing the request. items: $ref: '#/components/schemas/ErrorInfo' ErrorInfo: type: object description: > Standard error object containing an application-specific error code and a descriptive message explaining the issue. required: - errorType - errorCode - errorMessage properties: errorType: description: High-level error classification indicating its cause or severity. type: string enum: - USER_ERROR - SYSTEM_ERROR - APP_ERROR example: USER_ERROR errorCode: type: string description: Application-specific error code. example: '90002' errorMessage: type: string description: Detailed description of the error. example: Form param 'grant_type' invalid ErrorResponse: type: object description: > Standard error object containing an application-specific error code and a descriptive message explaining the issue. required: - code - message properties: code: type: string description: Application-specific error code. example: CMN_90007 message: type: string description: Detailed description of the error. example: Invalid grant type AccessTokenRequestV2: description: > OAuth 2.0 token request payload. The required fields depend on the `grant_type` provided in the request. oneOf: - $ref: '#/components/schemas/ClientCredentialsGrantRequestV2' - $ref: '#/components/schemas/PasswordGrantRequestV2' - $ref: '#/components/schemas/AuthorizationCodeGrantRequestV2' - $ref: '#/components/schemas/RefreshTokenGrantRequestV2' TokenRequestBaseV2: type: object description: Common fields required in an OAuth 2.0 token request. required: - grant_type properties: grant_type: type: string description: OAuth 2.0 grant type for the token request. ClientCredentialsGrantRequestV2: description: > Used to request an institution-scoped access token without customer-specific context. allOf: - $ref: '#/components/schemas/TokenRequestBaseV2' - type: object properties: grant_type: type: string description: >- OAuth 2.0 grant type indicating an institution‑scoped access token request. enum: - client_credentials - password - authorization_code - refresh_token example: client_credentials scopes: type: string description: > The scopes being requested. Each scope must be included in the set of scopes configured for the client application. Requests for unauthorized scopes are rejected. If no scopes are specified, all scopes allowed for the client are granted. example: 'accounts:read, transactions:read' PasswordGrantRequestV2: description: > Used to request a customer-scoped access token by authenticating the user with their digital banking credentials. allOf: - $ref: '#/components/schemas/TokenRequestBaseV2' - type: object required: - username - password properties: grant_type: type: string description: >- OAuth 2.0 grant type indicating a customer-scoped access token request. enum: - client_credentials - password - authorization_code - refresh_token example: password username: type: string description: The customer's digital banking login ID. example: userTest password: type: string description: The customer's digital banking password. example: Test@123 scopes: type: string description: > The scopes being requested. Each scope must be included in the set of scopes configured for the client application. Requests for unauthorized scopes are rejected. If no scopes are specified, all scopes allowed for the client are granted. example: 'accounts:read, transactions:read' AuthorizationCodeGrantRequestV2: description: > Used in OpenID Connect (OIDC) flows to exchange an authorization code for an access token. allOf: - $ref: '#/components/schemas/TokenRequestBaseV2' - type: object required: - code properties: grant_type: type: string description: OAuth 2.0 grant type indicating an authorization code exchange. enum: - client_credentials - password - authorization_code - refresh_token example: authorization_code code: type: string description: > A short-lived authorization code issued by Apigee, used to exchange for an access token. example: 0CE0b2NA RefreshTokenGrantRequestV2: description: > Used to request a new access token using a previously issued refresh token. allOf: - $ref: '#/components/schemas/TokenRequestBaseV2' - type: object required: - refresh_token properties: grant_type: type: string description: OAuth 2.0 grant type indicating a refresh token exchange. enum: - client_credentials - password - authorization_code - refresh_token example: refresh_token refresh_token: type: string description: > A valid refresh token used to request a new access token without re-authenticating the user. example: 5Kjn3DsFK4MwL138Tx0zA2xLsMSEoJRq RevokeAccessTokenRequestV2: type: object description: Request payload used to revoke an active access or refresh token. required: - token properties: token: type: string description: The access token or refresh token to be revoked. example: GNAW1ogAtmPQ1LGyL6UGrzUtgS6j example: token: GNAW1ogAtmPQ1LGyL6UGrzUtgS6j AccessTokenResponseV2: description: > OAuth 2.0 access token response. The fields included in the response depend on the grant type used in the request. anyOf: - $ref: '#/components/schemas/ClientCredentialsGrantResponseV2' - $ref: '#/components/schemas/PasswordGrantResponseV2' - $ref: '#/components/schemas/AuthorizationCodeGrantResponseV2' - $ref: '#/components/schemas/RefreshTokenGrantResponseV2' TokenResponseBaseV2: type: object description: Common fields returned in a successful OAuth 2.0 access token response. required: - access_token - expires_in - token_type properties: access_token: type: string description: > OAuth 2.0 access token to be included as a bearer token in subsequent Candescent APIs requests. example: C9pZ6NvdteSuz367601awfLkoALZ expires_in: type: string description: > Access token lifetime, in seconds. Defaults to 24 hours and may be configured in the Apigee application per financial institution. example: '2591999' token_type: type: string description: 'Indicates the type of token returned, typically Bearer.' example: Bearer ClientCredentialsGrantResponseV2: description: > Response for the `client_credentials` grant. The issued access token is institution-scoped and does not include a refresh token. allOf: - $ref: '#/components/schemas/TokenResponseBaseV2' - type: object properties: access_token: example: gBOL3RmYwc6HV5DGvde0ilFWwelg expires_in: example: '2591999' token_type: example: Bearer PasswordGrantResponseV2: description: > Response for the `password` grant. Includes a refresh token for obtaining new access tokens. allOf: - $ref: '#/components/schemas/TokenResponseBaseV2' - type: object properties: access_token: example: C9pZ6NvdteSuz367601awfLkoALZ expires_in: example: '2591999' refresh_token: type: string description: > A token that can be used to obtain a new access token after the current one expires. example: 5Kjn3DsFK4MwL138Tx0zA2xLsMSEoJRq refresh_token_expires_in: type: string description: 'Duration, in seconds, before the refresh token expires.' example: '15551999' AuthorizationCodeGrantResponseV2: description: > Response for OpenID Connect authorization code exchanges. Includes an ID token containing user identity claims. A refresh token is returned only when the `offline_access` scope was requested during authorization. allOf: - $ref: '#/components/schemas/TokenResponseBaseV2' - type: object properties: access_token: example: HDBmHkQayzuhiURWmX1MpOjrGE9c expires_in: example: '1799' refresh_token: type: string description: > A token used to obtain a new access token after the current access token expires. Returned only when the `offline_access` scope was requested during authorization. example: C50r4eny6ySPpQwL1y4O48GkCwj5ujKA id_token: type: string description: > A JSON Web Token (JWT) containing user identity claims, typically used in OpenID Connect flows. example: >- eyJ0eXAiOiJKV1QiLCJraWQiOiJpZFRva2VuUnNhS2V5IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI2MGZkMzQyOTE4OTA0NWEzOGQwNTQyNzQ1YThjYTFkYiIsImlzcyI6Imh0dHBzOi8vd3d3LmRpZ2l0YWxpbnNpZ2h0LmNvbSIsImlhdCI6MTc1OTk0NzMxMSwiZXhwIjoxNzU5OTQ3NjExfQ.FL2gdU9DmL_6x6iKX6eDls6LQsBnfQxCyBTvUUMoOcnXvxL1HfzovBMGbTIQZ6Tk94VNkPKqNik0z8hLx2TftKSP2M0fLyTBMFjNfODuZ4oMMwfoACTVhPoFXERrUJQg68kP5bsBGzUVPnjywiTI_TAeo2KA RefreshTokenGrantResponseV2: description: > Response for the `refresh_token` grant. Includes a new access token and a new refresh token. allOf: - $ref: '#/components/schemas/TokenResponseBaseV2' - type: object properties: access_token: example: GNAW1ogAtmPQ1LGyL6UGrzUtgS6j expires_in: example: '2591999' refresh_token: type: string description: > A token that can be used to obtain a new access token after the current one expires. example: iNLkBZGAuJA7SbWh5LhAKiJVZqQRnfxQ refresh_token_expires_in: type: string description: 'Duration, in seconds, before the refresh token expires.' example: '15551999' AuthorizationCodeRequest: type: object description: > Form parameters used to generate an OAuth 2.0 authorization code. If any of nonce, aud, or requested_scopes is provided, the OpenID Connect (OIDC) authorization code flow is used. required: - scopes - client_id - username - institution_user_id properties: scopes: type: string description: > Required comma-separated list of OAuth API scopes to bind to the authorization code and resulting access token. Each scope must be included in the client application's allowed-scopes Apigee attribute, and at least one scope is required. OpenID Connect scopes must be specified in requested_scopes. example: 'institution-users:read,accounts:read,transactions:read' requested_scopes: type: string description: > Optional comma-separated list of OpenID Connect scopes (for example, openid, profile, offline_access). If this field, nonce, or aud is provided, the request uses the OIDC authorization code flow instead of standard OAuth. API and resource scopes must still be specified in scopes. These values are stored with the authorization code but are not validated against the client application’s allowed-scopes attribute. example: 'openid,profile,offline_access' client_id: type: string description: >- Client application identifier (Apigee app key) requesting authorization. example: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS username: type: string description: >- Login identifier for the user associated with the financial institution. example: exapiretail institution_user_id: type: string description: Unique identifier for the authenticated institution user. example: 40BC0EB5891C08D8E063C0A011ACE593 nonce: type: string description: > Cryptographically unique value used to associate a client session with an OpenID Connect authorization request. example: dGhlX3NlY3JldF9ub25jZV92YWx1ZQ== aud: type: string description: Intended audience for the OpenID Connect authorization request. example: 'https://example.org' auth_time: type: string description: > Optional timestamp indicating when the user was authenticated, expressed as a Unix epoch time in seconds (OIDC NumericDate). Stored on the authorization code and propagated to the auth_time claim in the ID token when the code is exchanged. example: '1735689290' example: client_id: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS scopes: 'institution-users:read,accounts:read,transactions:read' username: exapiretail institution_user_id: 40BC0EB5891C08D8E063C0A011ACE593 AuthorizationCodeResponse: type: object description: > Response containing the authorization code and redirect URI returned after successful authorization. required: - code - redirect_uri properties: code: type: string description: > Authorization code that can be exchanged for an access token with [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/). example: yYASO4BU redirect_uri: type: string description: > Redirect URI configured for the client application to which the authorization code is issued. example: 'https://example.org' example: code: yYASO4BU redirect_uri: 'https://example.org' AuthorizeClientRequest: type: object description: > Form parameters used to authorize a client application as part of the OAuth 2.0 authorization code flow. required: - client_id properties: client_id: type: string description: >- Client application identifier (Apigee app key) requesting authorization. example: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS example: client_id: xJi1NyXQVgYA10RkcHayZueJAG1o9n8Fp1AG3jjL4At00IKS AuthorizeClientResponse: type: object description: > Client application details returned after a successful authorization check, including approved scopes and authorization flow policy flags. required: - scopes - appId - additional_info properties: scopes: type: string description: Comma-separated list of scopes approved for the client application. example: 'institution-users:read,accounts:read,transactions:read' appId: type: string description: Apigee application identifier of the authorized client. example: AuthCodeTestAppDeviceRegConsentEnabled additional_info: type: object description: > Authorization flow settings for the client application, as configured in Apigee. Use these flags to determine which authorization steps must be completed before issuing an authorization code. example: secondary_authentication_enabled: false consent_enabled: true device_registration_enabled: true required: - secondary_authentication_enabled - consent_enabled - device_registration_enabled properties: secondary_authentication_enabled: type: boolean description: > Indicates whether multi-factor (secondary) authentication is required for this client during the authorization flow. example: false consent_enabled: type: boolean description: > Indicates whether explicit user consent is required before access is granted. example: true device_registration_enabled: type: boolean description: > Indicates whether device registration is required before access is granted. example: true example: scopes: 'institution-users:read,accounts:read,transactions:read' appId: AuthCodeTestAppDeviceRegConsentEnabled additional_info: secondary_authentication_enabled: false consent_enabled: true device_registration_enabled: true AccessTokenRequestV1: description: > OAuth token request payload. The required fields depend on the `grant_type` provided in the request. oneOf: - $ref: '#/components/schemas/ClientCredentialsGrantRequestV1' - $ref: '#/components/schemas/PasswordGrantRequestV1' TokenRequestBaseV1: type: object description: Common fields required in an OAuth token request. required: - grant_type properties: grant_type: type: string description: OAuth grant type for the token request. ClientCredentialsGrantRequestV1: description: > Used to request an institution-scoped access token without customer-specific context. allOf: - $ref: '#/components/schemas/TokenRequestBaseV1' - type: object properties: grant_type: type: string description: >- OAuth grant type indicating an institution‑scoped access token request. enum: - client_credentials - password example: client_credentials PasswordGrantRequestV1: description: > Used to request a customer-scoped access token by authenticating a **retail** user with their digital banking credentials. The `password` grant is supported for retail users only; business users must use `client_credentials` or [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/). allOf: - $ref: '#/components/schemas/TokenRequestBaseV1' - type: object required: - username - password properties: grant_type: type: string description: >- OAuth grant type indicating a customer-scoped access token request. enum: - client_credentials - password example: password username: type: string description: The customer's digital banking login ID. example: userTest password: type: string description: The customer's digital banking password. example: Test@123 AccessTokenResponseV1: description: > OAuth 2.0 access token response. The fields included in the response depend on the grant type used in the request. anyOf: - $ref: '#/components/schemas/ClientCredentialsGrantResponseV1' - $ref: '#/components/schemas/PasswordGrantResponseV1' TokenResponseBaseV1: type: object description: Common fields returned in a successful OAuth access token response. required: - access_token - expires_in - di_fiid xml: name: token properties: access_token: type: string description: > OAuth access token to be included as a bearer token in subsequent Candescent APIs requests. example: 6a41xIbec9T34KFTrq9XALuu1yzi expires_in: type: string description: > Access token lifetime, in seconds. Defaults to 30 minutes and may be configured in the Apigee application per financial institution. example: '2591999' di_fiid: type: string description: Identifier of the financial institution associated with the token. example: '00016' ClientCredentialsGrantResponseV1: description: > Response for the `client_credentials` grant. The access token is institution-scoped and does not include customer context fields. allOf: - $ref: '#/components/schemas/TokenResponseBaseV1' - type: object properties: access_token: example: 6a41xIbec9T34KFTrq9XALuu1yzi expires_in: example: '2591999' di_fiid: example: '00016' PasswordGrantResponseV1: description: > Response for the `password` grant (retail users only). The access token is customer-scoped and includes customer context. allOf: - $ref: '#/components/schemas/TokenResponseBaseV1' - type: object properties: access_token: example: DAUhQMt0coKQwVV9AlXFBeGBrAdh expires_in: example: '2591999' di_fiid: example: '00016' di_ficustomer: type: string description: >- Unique identifier of the customer associated with the financial institution. example: 8fe733f4e27246908f92e8f7c0b96847 di_member_number: type: string description: >- Member number assigned to the customer by the financial institution. example: '202510091' refresh_token: type: string description: > A token that can be used to obtain a new access token after the current one expires. This endpoint does not support the `refresh_token` grant type. example: fTTLuUG7PORodGirMOcsvVuVjP5cypoA refresh_token_expires_in: type: string description: > Duration, in seconds, before the refresh token expires. This endpoint does not support the `refresh_token` grant type. example: '2591999' RegisterCustomerRequest: type: object xml: name: FICustomer description: >- Wrapper for the customer registration request. The JSON body must have a `FICustomer` root key; for XML the root element is ``. required: - FICustomer properties: FICustomer: $ref: '#/components/schemas/FICustomerRequest' FICustomerRequest: type: object description: Customer profile fields accepted by the registration endpoint. properties: id: type: object description: >- Customer identifier. Set `value` to `"0"` and `type` to `"GUID"` for new registrations. properties: value: type: string description: Set to `"0"` for new registrations. type: type: string description: Set to `"GUID"`. fiId: type: object description: The Financial Institution ID. properties: value: type: string description: Must match the `di_fiid` path parameter. memberNumber: type: string description: >- Member number of the user in the FI's core system. Must be unique per registration. Max 16 alphanumeric characters. person: type: object description: Personal information for the customer. properties: personName: type: object properties: firstName: type: string description: First name (max 39 characters). lastName: type: string description: Last name (max 39 characters). contactInfo: type: object properties: emailAddress: type: string description: Email address (max 64 characters). postalAddress: type: array description: One or more postal addresses. items: type: object properties: address1: type: string description: Primary street address (max 128 characters). address2: type: string description: 'Secondary address line (apt, suite, etc.).' address3: type: string description: Tertiary address line. city: type: string description: City name. state: type: string description: >- State or province code. Must be exactly 2 characters for US addresses. postalCode: type: string description: ZIP or postal code. country: type: string description: Country code (e.g. `USA`). phoneNumber: type: array description: One or more phone numbers. items: type: object properties: number: type: string description: 'Phone number, 10 digits, no dashes.' countryCode: type: string description: Country dialing code. Use `"0"` for US. birthDate: type: string description: Date of birth in `yyyy-MM-dd` format. channelInfos: type: object description: Channel enrollment information. properties: channelInfo: type: array description: >- One or more channel registrations. Each specifies a channel type and user credentials for that channel. items: type: object properties: channelType: type: string description: >- Channel type. Use `TPV_API` for third-party API registrations. credential: type: object properties: loginId: type: string description: >- Login ID for the channel. Must be unique, 6-256 characters. Allowed special characters: `@$*_-=.!~`. password: type: string description: >- Password for the channel. 6-32 characters, must contain characters from at least 2 of: letters, numbers, special characters. acceptedDisclosure: type: string description: >- Whether disclosures have been accepted. Set to `"false"` for initial registration. userType: type: string description: User type. Set to `"PRIMARY"` for standard registrations. ssn: type: string description: 'Social Security Number, exactly 9 digits.' motherMaidenName: type: string description: Mother's maiden name (max 128 characters). hostCredential: type: object description: Host system credential. properties: password: type: string description: ARS user PIN on the host system. RegisterCustomerResponse: type: object xml: name: FICustomer description: >- Wrapper for the registration response. The XML root element is `` containing the created customer profile. properties: FICustomer: $ref: '#/components/schemas/FICustomerResponse' FICustomerResponse: type: object description: >- Customer profile as returned by the registration endpoint. Includes all fields from the request plus server-assigned values. properties: id: type: object description: >- Customer identifier. After successful registration, `value` contains the assigned GUID. properties: value: type: string description: The customer GUID assigned by the system. type: type: string description: Always `"GUID"`. fiId: type: object properties: value: type: string description: The Financial Institution ID. memberNumber: type: string description: The member number submitted in the request. authId: type: string description: Authentication identifier assigned by the system. person: type: object properties: personName: type: object properties: firstName: type: string lastName: type: string middleName: type: string titlePrefix: type: string suffix: type: string contactInfo: type: object properties: emailAddress: type: string postalAddress: type: array items: type: object properties: address1: type: string address2: type: string address3: type: string city: type: string state: type: string postalCode: type: string country: type: string phoneNumber: type: array items: type: object properties: number: type: string countryCode: type: string birthDate: type: string description: >- Date of birth. May include timezone offset (e.g. `1989-10-09-07:00`). channelInfos: type: object properties: channelInfo: type: array items: type: object properties: channelType: type: string credential: type: object properties: loginId: type: string description: The login ID for this channel. hostCredential: type: object properties: loginId: type: string description: Host login ID assigned by the system. billPayEnabled: type: boolean description: Whether bill pay is enabled for this customer. destinations: type: object description: Alert/notification destinations created during registration. properties: destination: type: array items: type: object properties: contactInfo: type: string protocol: type: string description: 'e.g. `VOICE`, `EMAIL`, `SMS`.' activated: type: boolean acceptedDisclosure: type: boolean description: Whether disclosures have been accepted. userType: type: string description: User type (e.g. `PRIMARY`). ssn: type: string description: SSN as submitted. motherMaidenName: type: string description: Mother's maiden name as submitted. Error: type: object description: >- Standard error object containing an HTTP status code, an application-specific error code, and a descriptive message explaining the issue. properties: status: type: integer description: HTTP status code example: 400 message: type: string description: 'Verbose, plain language description of the problem' example: 'Verbose, plain language description of the problem' code: type: string description: Internal error code example: UXU_99999 CustomerInformation: description: >- Customer profile, including identity, status, contacts, addresses, and etc. type: object properties: userId: description: Customer identifier as assigned by the financial institution. type: string pattern: '^[0-9A-F]{32}$' example: 0788FF6B745D6997E063C0A011ACB61C fiId: description: Financial institution identifier. type: string pattern: '^([0-9]{5})$' example: '00016' loginId: description: The customer's authentication identifier. type: string pattern: '^[0-9a-f]{32}$' example: 0db6c707692211ee895342010a31a2af userName: description: Online banking login identifier (username) for the customer. type: string example: finBanker01 birthDate: description: 'Customer''s date of birth (ISO 8601 calendar date, yyyy-MM-dd).' type: string format: date example: '1995-07-01' failedLoginCount: description: Count of consecutive failed login attempts. type: integer format: int32 example: 0 failedPasswordResetCount: description: Count of failed password reset attempts. type: integer format: int32 example: 0 firstName: description: Customer's given name. type: string example: Finley middleName: description: Customer's middle name. type: string example: the lastName: description: Customer's family name. type: string example: Banker fullName: description: Full name of the customer. type: string example: 'Finley, Banker the' emailAddress: description: Email address on file for the user. type: string format: email example: finley.banker@gmail.com userStatus: description: >- The customer's status as a set of flags: enrollment and approval (registered, approved, rejected), access and security (active, locked, on hold, password reset), email validity, and required disclosures. allOf: - $ref: '#/components/schemas/UserStatus' postalAddresses: description: Postal or mailing addresses associated with the user. type: array items: $ref: '#/components/schemas/PostalAddress' contactMethods: description: 'Contact methods used for notifications (SMS, voice, email).' type: array items: $ref: '#/components/schemas/ContactMethod' registrationDateTime: description: >- When the user completed online banking registration (ISO 8601 calendar date, yyyy-MM-dd). type: string format: date example: '2024-09-01' userType: description: Retail or business user classification. type: string enum: - RETAIL - BUSINESS example: RETAIL userRole: description: Onwership of the account. type: string enum: - PRIMARY - ENTITLED example: PRIMARY customers: description: Customers entitled to or linked with this user profile. type: array items: $ref: '#/components/schemas/Customer' acceptedDisclosure: description: >- Whether the customer has accepted required primary disclosure terms (typically during registration). type: boolean example: false billPayChecked: description: >- Whether bill pay enrollment was acknowledged or completed, e.g. registration checkbox or enrollment step. type: boolean example: false example: userId: 0788FF6B745D6997E063C0A011ACB61C fiId: '00016' loginId: 0db6c707692211ee895342010a31a2af userName: finBanker01 birthDate: '1995-07-01' failedLoginCount: 0 failedPasswordResetCount: 0 firstName: Finley middleName: the lastName: Banker fullName: 'Finley, Banker the' emailAddress: finley.banker@gmail.com userStatus: active: true onHold: false locked: false reset: false registered: true approved: true rejected: false invalidEmailId: false acceptedDisclosure: true postalAddresses: - index: '1' address1: 4 Concourse Parkway NE address2: Suite 400 address3: '' city: Atlanta state: GA postalCode: '30328' country: US type: PHYSICAL_HOME_ADDRESS contactMethods: - id: '7017673' contactInfo: '5105165330' telephoneCountryCode: '1' protocol: SMS activated: true validated: true enrolledDateTime: '2025-09-01' primary: true - id: '7017674' contactInfo: finley.banker@gmail.com protocol: EMAIL activated: true validated: true enrolledDateTime: '2025-09-01' primary: false registrationDateTime: '2024-09-01' userType: RETAIL userRole: PRIMARY customers: - customerId: 8e664a80a4c74340a83577d35b753e2b memberNumber: '45243456' customerType: RETAIL hostLoginId: '45243456' acceptedDisclosure: true billPayChecked: false Customer: description: >- Financial institution customer record. For retail accounts, this object represents the customer identity itself. For business accounts, it represents linkage to the group of entities/subsidiaries associated with the business. type: object properties: customerId: description: >- For retail account, this is the unique identifier of the customer at the financial institution. For business account, this is the unique identifier of the entity/subsidiary at the financial institution. type: string pattern: '^[0-9a-f]{32}$' example: 8e664a80a4c74340a83577d35b753e2b memberNumber: description: >- Member or customer number used by the financial institution. For business account, this is the TIN/EIN number of the entity/subsidiary. type: string example: '45243456' customerType: description: Retail or business user classification. type: string enum: - RETAIL - BUSINESS example: RETAIL hostLoginId: description: Customer login identifier on the host or core banking system. type: string example: '45243456' example: customerId: 8e664a80a4c74340a83577d35b753e2b memberNumber: '45243456' customerType: RETAIL hostLoginId: '45243456' ContactMethod: type: object description: 'Phone, SMS, voice, or email channel used to notify the customer.' properties: id: description: Unique identifier of this contact method. type: string example: '7017673' contactInfo: description: >- For SMS or VOICE, the subscriber number in national format (digits only; use telephoneCountryCode for the country calling prefix). For EMAIL, the full email address. type: string example: '5105165330' telephoneCountryCode: description: >- Country calling code for phone-based protocols (ITU-T E.164, digits only; e.g. 1 for US/Canada). type: string example: '1' protocol: description: >- Channel for notifications and verification messages (SMS, voice call, or email). type: string enum: - SMS - VOICE - EMAIL example: VOICE activated: description: Whether this contact method has been activated for use. type: boolean example: true validated: description: >- Whether this contact method has been verified (e.g. OTP or email link). type: boolean example: true enrolledDateTime: description: >- When this contact method was enrolled for the user (ISO 8601 calendar date, yyyy-MM-dd). type: string format: date example: '2025-09-01' primary: description: >- Whether this contact method is the primary destination for notifications and outreach. type: boolean example: true example: id: '7017673' contactInfo: '5105165330' telephoneCountryCode: '1' protocol: SMS activated: true validated: true enrolledDateTime: '2025-09-01' primary: true PostalAddress: description: Postal or street address used for customer profile. type: object required: - address1 - city - state properties: index: description: >- Key or sequence for this address when the customer has multiple postal addresses (ordering, selection, or updates). type: string example: '1' address1: description: Primary street address line (street number and name). type: string example: 4 Concourse Parkway NE address2: description: >- Secondary address line (e.g. unit, suite). Required for customer registration; contact-info update APIs may not require a value in this field. type: string example: Suite 400 address3: description: Optional third address line for additional location detail. type: string example: '' city: description: City or locality name. type: string example: Atlanta state: description: 'State, province, or region code (e.g. US state abbreviation).' type: string example: GA postalCode: description: Postal or ZIP code. type: string example: '30328' country: description: 'Country code (typically ISO 3166-1 alpha-2, e.g. US).' type: string example: US type: description: >- Address classification: physical vs mailing, home vs work, seasonal, temporary, or tax reporting. Use UNKNOWN when not specified. type: string enum: - UNKNOWN - PHYSICAL_HOME_ADDRESS - MAILING_HOME_ADDRESS - PHYSICAL_WORK_ADDRESS - MAILING_WORK_ADDRESS - SEASONAL_OR_VACATION_ADDRESS - TEMPORARY_ADDRESS - TAX_REPORTING_ADDRESS example: PHYSICAL_WORK_ADDRESS example: index: '1' address1: 4 Concourse Parkway NE address2: Suite 400 address3: '' city: Atlanta state: GA postalCode: '30328' country: US type: PHYSICAL_WORK_ADDRESS UserStatus: description: >- Boolean flags for digital banking customer state—access, enrollment, and email validity. type: object properties: active: description: Boolean flag indicating if the user account is currently active. type: boolean example: true onHold: description: >- Boolean flag indicating if the account is temporarily placed on hold. type: boolean example: false locked: description: >- Boolean flag indicating if the account is locked due to repeated failed login attempts. type: boolean example: false reset: description: Boolean flag indicating if the user’s password has been reset. type: boolean example: false registered: description: >- Boolean flag indicating if the user has successfully completed the registration process. type: boolean example: true approved: description: >- Boolean flag indicating if the user has been approved to access online banking services. type: boolean example: true rejected: description: >- Boolean flag indicating if the user has been denied access to online banking services. type: boolean example: false invalidEmailId: description: >- Boolean flag indicating if the user’s email address is incorrectly formatted. type: boolean example: false acceptedDisclosure: description: >- Boolean flag indicating if the user has accepted required primary disclosure terms (typically during registration). type: boolean example: true example: active: true onHold: false locked: false reset: false registered: true approved: true rejected: false invalidEmailId: false acceptedDisclosure: true EStatementReportResponse: type: object properties: totalCount: type: integer example: 100 description: Total number of records StatementOptInReport: type: array items: $ref: '#/components/schemas/EStatementReport' EStatementReport: type: object properties: userId: type: string example: bfdf0fe66b334326b9f89f42c5af445c description: Uniquely identifiable Institution Customer ID userName: type: string example: John Doe description: Name of the User accountNumber: type: string example: 9900002001 description: Account Number of the User accountType: type: string example: SAVINGS description: Type of the account optInEstatement: type: boolean example: true description: Indicates whether estatement is opted optInPaperStatement: type: boolean example: false description: Indicates whether Paper Statement is opted optInDateTime: type: string example: '1985-05-22T00:00:00-07:00' description: Indicates whether Paper Statement is opted EStatementReportRequest: type: object properties: customerId: type: string example: bfdf0fe66b334326b9f89f42c5af445c description: Uniquely identifiable Institution Customer ID accountType: type: string example: SAVINGS description: Type of the account ResetPasswordRequest: required: - contactMethodId type: object properties: contactMethodId: type: string example: '123310058' description: >- Uniquely identifiable key of the contact method to which the OTP needs to be sent protocol: type: string enum: - SMS - VOICE example: SMS description: Signifies how notifications get sent to this contact method ContactMethodResponse: type: object properties: customerId: type: string example: f744da820a2a4a68b246c8e6682728a7 description: Unique identifier of financial institution customer contactMethods: type: array items: $ref: '#/components/schemas/Destination' Destination: description: 'Phone, SMS, voice, or email channel used to notify the customer.' type: object properties: id: description: Unique identifier of this contact method. type: string example: '7017673' telephoneCountryCode: description: >- Country calling code for phone-based protocols (ITU-T E.164, digits only; e.g. 1 for US/Canada). type: string example: '1' contactInfo: description: >- For SMS or VOICE, the subscriber number in national format (digits only; use telephoneCountryCode for the country calling prefix). For EMAIL, the full email address. type: string example: '5105165330' protocol: description: >- Channel for notifications and verification messages (SMS, voice call, or email). type: string enum: - SMS - VOICE - EMAIL example: VOICE isActivated: description: Whether this contact method has been activated for use. type: boolean example: true enrolledDateTime: description: >- When this contact method was enrolled for the user (ISO 8601 date-time, with timezone offset or Z for UTC). type: string format: date-time example: '2025-09-01T11:00:00-08:00' example: id: '7017673' telephoneCountryCode: '1' contactInfo: '5105165330' protocol: SMS isActivated: true enrolledDateTime: '2025-09-01T11:00:00-08:00' ContactInfo: type: object properties: userIdType: type: string enum: - CUSTOMER_ID - LOGIN_ID phoneNumber: type: object properties: oldPhoneNumber: type: string example: '1234567890' oldCountryCode: type: string example: '1' newPhoneNumber: type: string example: 9999999 newCountryCode: type: string example: '1' email: type: object properties: emailAddress: type: string example: jane.doe@gm.com postalAddress: $ref: '#/components/schemas/UpdateContactInfoPostalAddress' UpdateContactInfoPostalAddress: type: object description: Postal address for contact info update properties: address1: type: string example: main street address2: type: string example: main street city: type: string example: bangalore state: type: string example: karnataka postalCode: type: string example: 89000 country: type: string example: IN EStatementRequest: type: object properties: statementType: type: string description: >- Type of statement for which the preference is being set (e.g. OLS for online statement). example: OLS activateEstatement: type: boolean description: Signifies how statement get sent from account. accountId: type: string description: Unique identifier of financial institution customer account. example: 18fc507616c646048ea400138c8ac887 EStatementDisclosure: type: object properties: institutionId: type: string example: 02688 description: Uniquely identifiable key for Financial Institution. institutionDisclosureStatus: type: string example: NOT_ACCEPTED description: Status of the disclosure. institutionDisclosureName: type: string enum: - OLS - ESIGN - IB example: OLS description: Uniquely identifiable name for the disclosure. paperWaiver: type: boolean example: 'true' description: >- If paperWaiver is true then statement preference is e-statement else it is paper statement. accountId: type: string example: 18fc507616c646048ea400138c8ac887 description: Uniquely identifiable Financial Institution Customer account. institutionUserDisclosureStatusUpdateDateTime: type: string example: '1985-05-22T00:00:00-07:00' description: Time when the disclosure status was updated. EStatementDisclosureResponse: type: object properties: institutionUserDisclosures: type: array items: $ref: '#/components/schemas/EStatementDisclosure' EStatementPreferencesRequest: description: >- Request to update the user's preferred e-statement delivery method for all accounts. type: object properties: activateEstatement: description: >- Indicate the delivery options for statements. Set as true to receive online statements. Set as false to receive statements by mail. type: boolean required: - activateEstatement InstitutionUser: type: object description: > Institution user profile includes customer data, login name, optional host data (when requested), and business banking location details. `contactMethods`, `postalAddresses`, and `subUsers` are included only when requested using the `$expand` parameter; otherwise, they are omitted from the response. required: - institutionUserId - institutionId - institutionUserType - userId - userName - failedLoginCount - failedPasswordResetCount - additionalInfo properties: institutionUserId: type: string description: | Unique identifier for the authenticated institution user. example: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: type: string description: Identifier of the financial institution. example: '00016' registrationDateTime: type: string description: Date and time the user registered with the institution. format: date-time example: '2025-10-09T00:00:00-07:00' parentInstitutionUserId: type: string description: > ID of the parent institution user, provided only for entitled retail sub-users. example: 40BC0EB5891C08D8E063C0A011ACE593 institutionUserRole: type: string description: > User's role within the institution. Retail roles are `PRIMARY` or `ENTITLED`. Business roles are `BUSINESS_ADMIN`, `BUSINESS_SECONDARY_ADMIN`, or `BUSINESS_USER`. enum: - PRIMARY - ENTITLED - BUSINESS_ADMIN - BUSINESS_SECONDARY_ADMIN - BUSINESS_USER example: PRIMARY institutionUserType: type: string description: Indicates whether the user is a retail or business banking customer. enum: - RETAIL - BUSINESS example: RETAIL institutionCustomers: type: array description: > Customer or business banking location data associated with the user: - Primary retail: one entry for the primary relationship - Entitled retail (sub-users): one entry referencing the primary relationship (same `institutionCustomerId`) - Business banking: one entry per accessible location (TIN) items: $ref: '#/components/schemas/InstitutionCustomer' subUsers: type: array description: > Entitled retail sub-users (ENTITLED) of a primary retail user. Each entry provides a summary for one sub-user (identity, status, and additionalInfo). Not applicable to business banking users. Included only when requested with `$expand=subUsers`; otherwise omitted. Nested expansion is supported up to two levels. items: $ref: '#/components/schemas/InstitutionUserSubUser' userId: type: string description: Authentication ID (authId) for the user. example: b2ed83bea52911f08fe542010a31a0cf userName: type: string description: User's login ID or username. example: finleythebanker lastName: type: string description: User's last name. example: Banker firstName: type: string description: User's first name. example: Finley middleName: type: string description: User's middle name. example: the fullName: type: string description: User's full name. example: 'Finley, Banker the' salutation: type: string description: 'User''s title prefix (e.g., Mr., Ms.).' example: Mr. suffix: type: string description: 'User''s name suffix (e.g., Jr., Sr.).' example: Jr. email: type: string description: User's email address. format: email example: finley.banker@candescent.com failedLoginCount: type: integer description: Number of failed login attempts. example: 0 failedPasswordResetCount: type: integer description: Number of failed password reset attempts. example: 0 lastLoginDateTime: type: string description: Date and time of the user's most recent successful login. format: date-time example: '2026-06-19T02:21:33-07:00' holdDateTime: type: string description: > Date and time the user was placed on hold. Present only when the user account is on hold. format: date-time example: '2025-07-01T08:23:41-07:00' holdReason: type: string description: Reason the user was placed on hold. example: fraud detected holdInitiatedBy: type: string description: Identifier of the administrator who initiated the hold. example: admin123 userStatus: $ref: '#/components/schemas/InstitutionUserStatus' birthDate: type: string description: User's date of birth. format: date example: '1970-11-11' postalAddresses: type: array description: > User's postal addresses. Included only when requested with `$expand=postalAddresses`; otherwise omitted. items: $ref: '#/components/schemas/PostalAddress1' contactMethods: type: array description: > User contact methods. Included only when requested with $expand=contactMethods; otherwise omitted. Optional $filter conditions (for example, host eq true or validated eq true) are supported. items: $ref: '#/components/schemas/ContactMethod1' additionalInfo: type: object description: Additional customer information as key-value metadata. properties: entry: type: array description: List of key-value pairs. items: $ref: '#/components/schemas/MapItem' example: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'Finley, Banker the' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Banker firstName: Riley email: riley.banker@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: finleythebanker lastName: Banker firstName: Finley middleName: the fullName: 'Finley, Banker the' email: finley.banker@candescent.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 4 Concourse Parkway NE streetAddress2: Suite 400 city: Atlanta state: GA postalCode: '30328' country: US contactMethods: - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 InstitutionUserSubUser: type: object description: > Entitled retail sub-user (ENTITLED) of a primary retail user. Nested subUsers are supported up to two levels using the `$expand` parameter. allOf: - $ref: '#/components/schemas/InstitutionUser' example: institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Banker firstName: Riley email: riley.banker@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf InstitutionUserV2: type: object description: > Institution user profile includes customer data, login name, optional host data (when requested), and business banking location details. `contactMethods`, `postalAddresses`, `subUsers`, and `identificationDocuments` are included only when requested using the `$expand` parameter; otherwise, they are omitted from the response. allOf: - $ref: '#/components/schemas/InstitutionUser' - type: object properties: identificationDocuments: type: array description: > The user's identification documents. Included when requested (using `$expand=identificationDocuments`) and Apigee application includes the `institution-users:read_pii` scope. Document IDs are returned in encrypted form using the financial institution's encryption key. items: $ref: '#/components/schemas/IdentificationDocument' example: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: PRIMARY institutionUserType: RETAIL institutionCustomers: - institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' hostLoginId: '202510091' customerType: RETAIL memberName: 'Finley, Banker the' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 institutionId: '00016' registrationDateTime: '2025-10-09T00:00:00-07:00' institutionUserRole: ENTITLED institutionUserType: RETAIL userId: 6890b5e1a52d11f08fe542010a31a0cf lastName: Banker firstName: Riley email: riley.banker@candescent.com failedLoginCount: 1 failedPasswordResetCount: 0 userStatus: active: true reset: true additionalInfo: entry: - key: legacyUserGuid value: 6881c1c0a52d11f08fe542010a31a0cf userId: b2ed83bea52911f08fe542010a31a0cf userName: finleythebanker lastName: Banker firstName: Finley middleName: the fullName: 'Finley, Banker the' email: finley.banker@candescent.com failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' userStatus: active: true birthDate: '1970-11-11' postalAddresses: - streetAddress1: 4 Concourse Parkway NE streetAddress2: Suite 400 city: Atlanta state: GA postalCode: '30328' country: US contactMethods: - id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true additionalInfo: entry: - key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 InstitutionCustomer: type: object description: > A customer or business location linked to the user. For retail primary users: one entry represents their main relationship. For retail sub-users: one entry links to the primary user. For business users: one entry is returned for each location they can access. required: - institutionCustomerId properties: institutionCustomerId: type: string description: > Product user GUID (legacy customer identifier): - Retail primary: the primary user's GUID - Retail sub-users: the primary user's GUID (used to link sub-users to the primary relationship). - Business banking: the GUID for each entitled location (TIN), with one value per `institutionCustomer` entry. example: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: type: string description: The member number for the customer. example: '202510091' memberName: type: string description: The customer's name. example: 'Finley, Banker the' customerType: type: string description: > The customer type for this relationship is determined as follows: - Retail primary and sub-users are classified as RETAIL. - For business banking users, each location entry is typically classified as BUSINESS. - A business banking location is classified as RETAIL only if that location is flagged as a retail TIN. enum: - RETAIL - BUSINESS example: RETAIL primary: type: boolean description: > This field applies only to business banking. It is set to true when the location is the user's default entitled location (TIN) and omitted if no default is specified. example: true hostLoginId: type: string description: The customer's host login ID. example: '202510091' cifNumber: type: string description: >- Customer Information File (CIF) number, when enabled in configuration. example: '123456789' additionalInfo: type: object description: > Contains bill pay credentials for the OFX (Open Financial Exchange). Included only when: `retrieveBillPayCredentials=true`, the user is a retail primary user, the member record includes a bill pay login ID. Omitted otherwise, including for business banking users and when `retrieveBillPayCredentials=false` (default). Requires the `institution-users-billpay:read` scope in addition to standard read access. properties: entry: type: array description: List of key-value pairs. items: $ref: '#/components/schemas/MapItem' example: institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 memberNumber: '202510091' memberName: 'Finley, Banker the' customerType: RETAIL hostLoginId: '202510091' InstitutionUserStatus: type: object description: > Account activity flags for an institution user. Only flags that are true are included in the response; flags that are false or not set are omitted. properties: active: type: boolean description: The user account is active and can sign in. example: true onHold: type: boolean description: The user account is on hold. example: true locked: type: boolean description: The user account is locked. example: true reset: type: boolean description: The user must reset their credentials. example: true registered: type: boolean description: The user has completed registration. example: true approved: type: boolean description: The user's registration was approved. example: true rejected: type: boolean description: The user's registration was rejected. example: true example: active: true UserStatusAdditionalInfo: type: object description: > Additional information, including failed login counts, password reset failures, last login time, and hold details. properties: failedLoginCount: type: integer description: Number of failed login attempts. example: 0 failedPasswordResetCount: type: integer description: Number of failed password reset attempts. example: 0 lastLoginDateTime: type: string description: Date and time of the user's most recent successful login. format: date-time example: '2026-06-19T02:21:33-07:00' holdDateTime: type: string description: > Date and time the user was placed on hold. Present only when the user account is on hold. format: date-time example: '2025-07-01T08:23:41-07:00' holdReason: type: string description: Reason the user was placed on hold. example: fraud detected holdInitiatedBy: type: string description: Identifier of the administrator who initiated the hold. example: admin123 example: failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' holdDateTime: '2025-07-01T08:23:41-07:00' holdReason: fraud detected holdInitiatedBy: admin123 UserStatus1: type: object description: > Status details for an institution user. Key account status indicators are returned at the top level. When the user is a primary user, status details for related sub-users are included in subUsers. allOf: - $ref: '#/components/schemas/InstitutionUserStatus' - type: object properties: institutionUserId: type: string description: Unique identifier for the authenticated institution user. example: 40BC0EB5891C08D8E063C0A011ACE593 parentInstitutionUserId: type: string description: > Unique identifier of the primary user. Returned only when querying an entitled retail sub-user; omitted for primary users. example: 40BC0EB5891C08D8E063C0A011ACE593 additionalInfo: $ref: '#/components/schemas/UserStatusAdditionalInfo' subUsers: type: array description: > Status details for entitled retail sub-users of a primary user. Included only when querying a primary user; not returned for sub-users or business banking users. items: $ref: '#/components/schemas/SubUserStatus' example: institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 active: true additionalInfo: failedLoginCount: 0 failedPasswordResetCount: 0 lastLoginDateTime: '2026-06-19T02:21:33-07:00' subUsers: - institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 active: true reset: true additionalInfo: failedLoginCount: 1 failedPasswordResetCount: 0 SubUserStatus: type: object description: > Status details for an entitled retail sub-user, returned in the subUsers array when querying a primary user. allOf: - $ref: '#/components/schemas/InstitutionUserStatus' - type: object properties: institutionUserId: type: string description: Unique identifier for the entitled retail sub-user. example: 40BC0EB5892308D8E063C0A011ACE593 additionalInfo: $ref: '#/components/schemas/UserStatusAdditionalInfo' example: institutionUserId: 40BC0EB5892308D8E063C0A011ACE593 active: true reset: true additionalInfo: failedLoginCount: 1 failedPasswordResetCount: 0 ContactMethod1: type: object description: > A way to contact the user, such as phone, email, SMS, or token. Returned when requested (using `$expand=contactMethods`). required: - protocol properties: id: type: string description: Identifier for the contact method. example: '6954007' protocol: type: string description: The contact method type. enum: - SMS - VOICE - TOKEN - EMAIL - WHATSAPP_SMS - WHATSAPP_VOICE example: VOICE activated: type: boolean description: Indicates whether the contact method is active (if available). example: true enrolledDateTime: type: string description: Date and time when the contact method was added (if available). format: date-time example: '2025-10-09T09:08:40-07:00' telephoneCountryCode: type: string description: Country calling code for phone-based methods (digits only). example: '1' contactInfo: type: string description: 'The contact value (phone number, email, or token).' example: '5105165330' validated: type: boolean description: >- Indicates whether the contact method has been verified (if available). example: true host: type: boolean description: Indicates whether the contact info comes from the host system. example: true primary: type: boolean description: Indicates whether this is the main contact method (if available). example: true contactMethodType: type: string description: >- The category of contact method (for example, home phone or work email). enum: - UNKNOWN - HOME_PHONE - HOME_CELLPHONE - BUSINESS_PHONE - BUSINESS_CELLPHONE - FAX - SECONDARY_OR_ALTERNATE_PHONE - PERSONAL_EMAIL - BUSINESS_EMAIL - SECONDARY_OR_ALTERNATE_EMAIL example: UNKNOWN example: id: '6954007' protocol: VOICE activated: true enrolledDateTime: '2025-10-09T09:08:40-07:00' telephoneCountryCode: '1' contactInfo: '5105165330' validated: true PostalAddress1: type: object description: | A mailing or street address for the user. Returned when requested (using `$expand=postalAddresses` or `postalAddress`). required: - streetAddress1 - city - state - postalCode properties: streetAddress1: type: string description: The main street address line. example: 4 Concourse Parkway NE streetAddress2: type: string description: 'Additional address line (for example, suite or unit).' example: Suite 400 streetAddress3: type: string description: 'Extra address details, if provided.' example: Building A city: type: string description: City or locality. example: Atlanta state: type: string description: 'State, province, or region code (for example, US state code).' example: GA postalCode: type: string description: ZIP or postal code. example: '30328' country: type: string description: >- Two-letter country code per ISO 3166-1 (for example, `US` for United States). example: US startDate: type: string description: The date and time when this address becomes valid (if provided). format: date-time example: '2026-01-01T00:00:00-07:00' endDate: type: string description: >- The date and time when this address is no longer valid (if provided). format: date-time example: '2036-01-01T00:00:00-07:00' primary: type: boolean description: Indicates whether this is the user's main address. example: true international: type: boolean description: Indicates whether this is an international address (if available). example: false id: type: string description: >- An identifier for the address record at the host system (if available). example: '1' postalAddressType: type: string description: The type of address. enum: - UNKNOWN - PHYSICAL_HOME_ADDRESS - MAILING_HOME_ADDRESS - PHYSICAL_WORK_ADDRESS - MAILING_WORK_ADDRESS - SEASONAL_OR_VACATION_ADDRESS - TEMPORARY_ADDRESS - TAX_REPORTING_ADDRESS example: UNKNOWN example: streetAddress1: 4 Concourse Parkway NE streetAddress2: Suite 400 city: Atlanta state: GA postalCode: '30328' country: US primary: true id: '1' postalAddressType: UNKNOWN IdentificationDocument: type: object description: > A government or tax ID document for a user. Returned only when requested (using `$expand=identificationDocuments`) and when the Apigee application includes the `institution-users:read_pii` scope. required: - id - maskedId - identificationDocumentType properties: id: type: string description: > An encrypted version of the document ID. It is never returned in readable form and can only be decrypted with the correct institution encryption key. example: >- S8k4+M2wahOEcGdwRNNY9e5ogm+UPyub2zA9gYK3CFXwGxKyPGZflK/YTWr9SL8rAQrj87LG7I+XtA6Ael3exTWT/UoSP9vWIZ9T8tJqIuV1r0+cydQZcy/Cw86q0JaL0RBuK5ukD7eWmULXpbSBZGz8d7A+fP6FoKr01o9RyDhdsJp+HTbeHd1dfEPbjGeq1s15oZoaq8FkhTf5EslTZDgez2iIr6/IlD76Tyhw4NKaDqkPHzdIJL7RmvM8UUT8+TVqk4lVfq8KhjAELWO3QwlfHFgPfL4DLR2tVKhFWcfIjbSd+IuA+694ibJmzeXW6PQJHxQqqNt0k4DcyIayXQ== maskedId: type: string description: 'A masked version of the ID, showing only the last four characters.' example: '*****6789' identificationDocumentType: type: string description: The type of identification document. enum: - DRIVERS_LICENSE - PASSPORT - STATE_ID - SSN - TIN - EIN - ITIN - ATIN - PTIN - UNKNOWN example: SSN example: id: >- S8k4+M2wahOEcGdwRNNY9e5ogm+UPyub2zA9gYK3CFXwGxKyPGZflK/YTWr9SL8rAQrj87LG7I+XtA6Ael3exTWT/UoSP9vWIZ9T8tJqIuV1r0+cydQZcy/Cw86q0JaL0RBuK5ukD7eWmULXpbSBZGz8d7A+fP6FoKr01o9RyDhdsJp+HTbeHd1dfEPbjGeq1s15oZoaq8FkhTf5EslTZDgez2iIr6/IlD76Tyhw4NKaDqkPHzdIJL7RmvM8UUT8+TVqk4lVfq8KhjAELWO3QwlfHFgPfL4DLR2tVKhFWcfIjbSd+IuA+694ibJmzeXW6PQJHxQqqNt0k4DcyIayXQ== maskedId: '*****6789' identificationDocumentType: SSN MapItem: type: object description: > A simple key-value pair used in the `additionalInfo.entry` list for a user or customer. required: - key - value properties: key: type: string description: The name of the attribute. example: legacyUserGuid value: type: string description: The value for the key. example: 8fe733f4e27246908f92e8f7c0b96847 example: key: legacyUserGuid value: 8fe733f4e27246908f92e8f7c0b96847 FICustomerId: type: object properties: type: type: string enum: - GUID - BFSID - CCID - HOSTID - MEMNUMBER - LOGINID - CIF - AUTHID - EMAIL - FICUSTOMER value: type: string IdType: type: object properties: value: type: string Credential: type: object properties: cifNumber: type: string loginId: type: string newLoginId: type: string oldPassword: type: string password: type: string pinOption: type: string enum: - STANDARD_PIN - DEFAULT_PIN - CYBER_PIN MfaCookie: type: object properties: cookieSource: type: string insertDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' insertUser: type: string maxAge: type: integer format: int32 name: type: string systemBrowserId: $ref: '#/components/schemas/IdType' systemBrowserName: type: string updateDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' updateUser: type: string value: type: string FICustomer: type: object properties: billPayCredential: $ref: '#/components/schemas/Credential' billPayEnabled: type: boolean billPayRegStatus: type: string challengeQuestionInfo: $ref: '#/components/schemas/ChallengeQuestionInfo' channelInfos: $ref: '#/components/schemas/ChannelInfos' fiId: $ref: '#/components/schemas/IdType' historyRange: type: string historySortOrder: type: string hostCredential: $ref: '#/components/schemas/Credential' ibStartupPage: type: string id: $ref: '#/components/schemas/FICustomerId' lastMobileLoginDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' lastSRTDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' memberHoldDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' memberHoldDesc: type: string memberNumber: type: string memberRegistrationDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' mfaCookies: type: array items: $ref: '#/components/schemas/MfaCookie' name: type: string person: $ref: '#/components/schemas/Person' productAppUserInfos: $ref: '#/components/schemas/ProductAppUserInfos' productUserInfo: $ref: '#/components/schemas/ProductUserInfo' Person: type: object properties: contactInfo: $ref: '#/components/schemas/ContactInfo1' ContactInfo1: type: object properties: emailAddress: type: string emailReminder: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' ChannelInfos: type: object properties: channelInfo: type: array items: $ref: '#/components/schemas/ChannelInfo' ChannelInfo: type: object properties: channelType: type: string enum: - WEB - PFM - MOBILE - TPV_API - UNKNOWN credential: $ref: '#/components/schemas/Credential' failedLoginCount: type: integer format: int32 id: $ref: '#/components/schemas/IdType' lastLoginDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' lastLoginDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' service: type: string userStatus: $ref: '#/components/schemas/UserStatus2' validLoginCount: type: integer format: int32 UserStatus2: type: object properties: acceptedDisclosure: type: boolean active: type: boolean adminApprovedIBRegistrationInMC: type: boolean alertsScheduled: type: boolean appliedForBPElectronicRegistration: type: boolean billpayId: type: string billpayScheduled: type: boolean bpFrontPageFalseBpPendingPaymentsTrue: type: boolean bpOptOut: type: boolean daysInactive: type: integer format: int32 deleted: type: boolean emailMfaEnrolled: type: boolean entitlements: type: boolean fiApprovalPending: type: boolean fiApproved: type: boolean fiApprovedReset: type: boolean fiRejected: type: boolean inquiryOnly: type: boolean invalidEmailId: type: boolean issoUserEnrolled: type: boolean limbo: type: boolean locked: type: boolean mfaEnrolledCookie: type: boolean mfaMandatory: type: boolean mfaOptional: type: boolean mustChangeAltUserId: type: boolean mustChangePassword: type: boolean needsToAcceptDisclosure: type: boolean needsToAcceptSecondaryDisclosure: type: boolean newUser: type: boolean onHold: type: boolean registered: type: boolean reinitiated: type: boolean reset: type: boolean resetIssoUserEnrolled: type: boolean segmentAssigned: type: boolean smsMobileActivationConfirmed: type: boolean smsMobileEnrolled: type: boolean srtScheduled: type: boolean subscribedToNewsletter: type: boolean subscribedToPromotionalMessages: type: boolean temporaryPassword: type: boolean uspEnrolled: type: boolean ChallengeQuestionInfo: type: object properties: challengeQuestions: type: array items: type: string challengeQuestionsSelected: type: array items: type: integer format: int32 enabled: type: boolean invalidAttempts: type: integer format: int32 maxBadAttempts: type: integer format: int32 numberOfOptionsPerMenu: type: integer format: int32 numberOfQuestions: type: integer format: int32 optedOut: type: boolean ProductAppUserInfo: type: object properties: acceptedDisclosureDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' appCode: type: string esignDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' esignStatus: type: boolean externalAuthId: type: string lastActivityDate: type: string pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}[+-][0-9]{2}:[0-9]{2}$' example: '2011-12-31-08:00' osdisclosure: type: boolean osemailReminder: type: boolean osgroup: type: boolean ospaperStatement: type: boolean statusCode: type: string updateDateTime: type: string pattern: >- ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$ example: '2025-12-15T04:03:30-08:00' ProductAppUserInfos: type: object properties: productAppUserInfo: type: array items: $ref: '#/components/schemas/ProductAppUserInfo' ProductUserInfo: type: object properties: productType: type: string AccountsResponse: type: object description: > Container for a list of accounts the authenticated user is entitled to access, along with optional metadata such as group counts for Business Banking location paging. required: - accounts properties: accounts: type: array description: | Accounts returned for the authenticated user. items: $ref: '#/components/schemas/Account' example: - id: FJLqiQAy1lvswlZXcu9rA0mD8ohakVblGGbi-f-r29A institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Business OFX Checking nickName: Business OFX Checking accountNumber: '0101' category: DEPOSIT type: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking currentBalance: currencyCode: USD amount: 443572 availableBalance: currencyCode: USD amount: 501306.06 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000022254' - id: waIhcoBqn0X8Fy-gpM72V7-2eYmJP9aQ1hjXcxlRpvU institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Simulator Credit Card nickName: Simulator Credit Card accountNumber: '0110' category: LOAN type: value: CREDIT_CARD_LOAN fiRawAccountType: 64 fiAccountType: 64 description: Credit Card currentBalance: currencyCode: USD amount: 0 availableBalance: currencyCode: USD amount: 0 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: false transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000049999' nextPaymentAmount: currencyCode: USD amount: 50 nextPaymentDate: '2026-03-15' minimumPayment: currencyCode: USD amount: 50 totalGroupCount: type: integer description: > Indicates the total number of business locations available to the user. This field is included only when `$apply=groupBy(customer)` paging is used. format: int64 example: 7 example: totalGroupCount: 7 accounts: - id: FJLqiQAy1lvswlZXcu9rA0mD8ohakVblGGbi-f-r29A institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Business OFX Checking nickName: Business OFX Checking accountNumber: '0101' category: DEPOSIT type: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking currentBalance: currencyCode: USD amount: 443572 availableBalance: currencyCode: USD amount: 501306.06 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000022254' - id: waIhcoBqn0X8Fy-gpM72V7-2eYmJP9aQ1hjXcxlRpvU institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Simulator Credit Card nickName: Simulator Credit Card accountNumber: '0110' category: LOAN type: value: CREDIT_CARD_LOAN fiRawAccountType: 64 fiAccountType: 64 description: Credit Card currentBalance: currencyCode: USD amount: 0 availableBalance: currencyCode: USD amount: 0 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: false transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000049999' nextPaymentAmount: currencyCode: USD amount: 50 nextPaymentDate: '2026-03-15' minimumPayment: currencyCode: USD amount: 50 Account: type: object description: > Represents a single financial account, including deposit, loan, investment, or related account types. The account is returned only if the authenticated user is entitled to access it. Fields included in the response depend on entitlements, masking rules, and the requested response view. required: - id - institutionId - category - type - accountNumber - institutionUserId properties: id: type: string description: Unique account identifier (encrypted key). example: FJLqiQAy1lvswlZXcu9rA0mD8ohakVblGGbi-f-r29A institutionUserId: type: string description: > Unique identifier for the authenticated institution user associated with the account. example: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: type: string description: > Unique identifier for the institution customer (retail customer or business banking location) associated with the account. For Business Banking, this is the unique identifier of the location/subsidiary at the financial institution. example: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: type: string description: >- Identifier of the financial institution to which the account belongs. example: 05529 description: type: string description: Display description of the account. example: Business OFX Checking nickName: type: string description: User-defined or institution-provided display name for the account. example: Payroll Account accountNumber: type: string description: > Account number associated with the account. The value may be masked depending on client entitlements and requested scopes. example: '0101' category: $ref: '#/components/schemas/AccountCategory' type: $ref: '#/components/schemas/AccountType' primaryHolderName: type: string description: Primary account holder name from the host. example: Finley The Banker currentBalance: type: object description: > Current posted balance of the account, representing the total amount on the account at the time of inquiry. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 availableBalance: type: object description: > Amount of funds currently available for withdrawal or use, after accounting for holds, pending transactions, and applicable limits. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 150 lastStatementBalance: type: object description: > Balance of the account as of the closing date of the most recent statement. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 300 status: $ref: '#/components/schemas/AccountStatus' allowedActions: $ref: '#/components/schemas/Actions' routingNumber: type: string description: > Bank routing number associated with the account, used to identify the financial institution for ACH and other payment transactions. example: '222341234' interestRate: type: number description: Current interest rate applied to the account balance. format: float example: 3 interestYearToDate: type: object description: > Accumulated interest earned or charged on the account balance during the current year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 tpvReference: type: string description: > External third‑party vendor (TPV) reference associated with the account, retrieved from host or from institution‑specific configuration. example: V5409-SAML_TRUHOME tpvProductCode: type: string description: > External third‑party vendor (TPV) product code associated with the account, retrieved from configuration based on EXTBRK value from the host. example: DISSO overdraftLimit: type: object description: > Maximum overdraft amount allowed for the account, representing the limit up to which overdraft funds may be used. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1000 overdraftAccountNumber: type: string description: > Account number of the linked overdraft account used to cover insufficient funds transactions. example: '0101' overdraftAvailableAmount: type: object description: > Amount of overdraft funds currently available for use, based on the configured overdraft limit and current account usage. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 currentYearEligibleContribution: type: object description: > Amount of funds eligible for contribution to the account in the current year, typically associated with a retirement account or investment account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 lastYearEligibleContribution: type: object description: > Amount of funds eligible for contribution to the account in the previous year, typically associated with a retirement account or investment account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 lastYearMaxContribution: type: object description: > Maximum amount of funds that can be contributed to the account in the previous year, typically associated with a retirement account or investment account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 3000 micrNumber: type: string description: > Magnetic Ink Character Recognition (MICR) number associated with the account, typically used for check processing. Returned only when known. May be omitted for `viewName=m` under default deploy; see **`viewName`**. example: '800000022254' escrowBalance: type: object description: > Amount of funds held in escrow for the account, typically for taxes, insurance, or other purposes. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 5000 currentPrincipalBalance: type: object description: > Outstanding principal balance of the loan, excluding interest, fees, and other charges. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10000 nextPaymentAmount: type: object description: | Amount due for the next scheduled payment on the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 50 nextPaymentDate: type: string description: Date on which the next scheduled payment for the account is due. format: date example: '2026-03-15' payOffAmount: type: object description: > Total amount due to pay off the loan, including principal, interest, fees, and other charges. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10000 calculatedPayOffAmount: type: object description: > System‑calculated estimate of the total amount required to pay off the loan, based on current balances and accruals. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10200 minimumPayment: type: object description: > Minimum required payment amount due for the current billing period to avoid delinquency or additional charges. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 25 lineOfCreditLimit: type: object description: > Maximum amount of funds that can be borrowed on the account, typically associated with a line of credit or credit card limit. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 20000 maturityDate: type: string description: Date when the account reaches the end of its term. format: date example: '2026-03-15' loanOriginationDate: type: string description: > Date on which the loan was originally issued or originated, representing the effective date of the loan agreement. format: date example: '2026-03-15' term: $ref: '#/components/schemas/Term' pastPrincipalDueDate: type: string description: > Date the principal portion of a required payment was due and became overdue for payment on the account. format: date example: '2026-01-10' lastPrincipalPaymentAmount: type: object description: > Amount of the most recent payment that was applied toward the loan principal, representing the principal portion of the payment. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 250 originalLoanAmount: type: object description: Original principal amount of the loan at the time it was issued. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 250000 example: id: LucHSRuNSd8zWXLh_x0o9XuPyoAfObcCKKvpEh_J4WM institutionUserId: F635BEB78FFA1E16E05309E011AC119C institutionCustomerId: f38a0d29000a4632a1c7ae93f2b288f8 institutionId: 05529 description: Simulator Business Checking nickName: Simulator Business Checking accountNumber: 0099 category: DEPOSIT type: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking currentBalance: currencyCode: USD amount: 4554.24 availableBalance: currencyCode: USD amount: 4554.24 status: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false allowedActions: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true routingNumber: '222341234' interestRate: 0 interestYearToDate: currencyCode: USD amount: 0 micrNumber: '800000016555' AccountCategory: type: string description: > Categorizes the account by its primary financial purpose, such as deposit, loan, investment, or cross‑user account. enum: - DEPOSIT - LOAN - INVESTMENT - TIERED_LOAN - CROSS_USER_ACCOUNT example: DEPOSIT AccountStatus: type: object description: > Set of status indicators describing the current state and conditions of the account. required: - open - closed - negativeBalance - delinquent - inCollection - overLimit - writtenOff - creditBalance - paymentCoupon - retirementPlan - retPlanOwnedByDeceased properties: open: type: boolean description: Indicates whether the account is currently open and active. example: true closed: type: boolean description: Indicates whether the account has been closed. example: false negativeBalance: type: boolean description: Indicates whether the account currently has a negative balance. example: false delinquent: type: boolean description: > Indicates whether the account is delinquent due to missed or late payments. example: false inCollection: type: boolean description: Indicates whether the account has been placed in collections. example: false overLimit: type: boolean description: > Indicates whether the account balance has exceeded an applicable credit or overdraft limit. example: false writtenOff: type: boolean description: > Indicates whether the account balance has been written off by the financial institution. example: false creditBalance: type: boolean description: > Indicates whether the account has a positive credit balance, representing a credit or refundable amount owed to the account holder. example: false paymentCoupon: type: boolean description: Indicates whether payment coupons are associated with the account. example: false retirementPlan: type: boolean description: Indicates whether the account is associated with a retirement plan. example: false retPlanOwnedByDeceased: type: boolean description: Indicates whether the account is owned by a deceased person. example: false approved: type: boolean description: > Indicates whether the account has been approved by the financial institution. example: true notApproved: type: boolean description: > Indicates whether the account has not been approved by the financial institution. example: false deleted: type: boolean description: > Indicates whether the account has been marked as deleted or deactivated in the system. example: false verified: type: boolean description: > Indicates whether the account has been verified by the financial institution. example: true example: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false approved: true notApproved: false deleted: false verified: true Actions: type: object description: > Set of actions that can be performed on the account, including the ability to transfer funds, view history, and view online statements. required: - summary - transferFrom - transferTo - isHistoryEnabled - isHistoryEntitled - isOnlineStatementEnabled properties: summary: type: boolean description: > Indicates whether the account can be displayed in summary or overview views. example: true transferFrom: type: boolean description: Indicates whether funds can be transferred from this account. example: true transferTo: type: boolean description: Indicates whether funds can be transferred into this account. example: true isHistoryEnabled: type: boolean description: Indicates whether transaction history is available for the account. example: true isHistoryEntitled: type: boolean description: > Indicates whether the authenticated user is entitled to view the account's transaction history. example: true isOnlineStatementEnabled: type: boolean description: Indicates whether online statements are available for the account. example: true example: summary: true transferFrom: true transferTo: true isHistoryEnabled: true isHistoryEntitled: true isOnlineStatementEnabled: true AccountType: type: object description: > Describes the type of account, including the raw account type code and the account type from host. properties: value: $ref: '#/components/schemas/DIAccountType' fiRawAccountType: type: integer description: Raw account type code from the host. format: int64 example: 1 fiAccountType: type: integer description: Financial institution specific defined account type code. format: int64 example: 1 description: type: string description: > Account description returned from the host. Financial institution can send custom account type description example: Checking example: value: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking DIAccountType: type: string description: | Describes the type of account classified by Candescent. enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - TRUST - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - USER_DEFINED - RETIREMENT_IRA example: CHECKING Money: type: object description: >- Represents a monetary amount, including the currency code and the amount value. required: - currencyCode - amount properties: currencyCode: $ref: '#/components/schemas/CurrencyCode' amount: type: number description: >- Numeric value representing the monetary amount in the specified currency. format: double example: 100 example: currencyCode: USD amount: 100 CurrencyCode: type: string description: ISO 4217 currency code indicating the currency of the monetary amount. enum: - AED - AFA - ALL - ANG - AOA - AOK - ARP - ARS - AMD - ATS - AUD - AWF - AWG - AZM - BAM - BBD - BDT - BEF - BGL - BHD - BIF - BMD - BND - BOB - BRC - BRL - BSD - BTN - BUK - BWP - BYR - BYB - BZD - CAD - CDF - CHF - CLP - CNY - COP - CRC - CZK - CUP - CVE - DDM - DEM - DJF - DKK - DOP - DZD - ECS - EEK - EGP - ERN - ESP - ETB - EUR - FIM - FJD - FKP - FRF - GBP - GEL - GHC - GIP - GMD - GNF - GRD - GTQ - GWP - GYD - HKD - HNL - HRK - HTG - HUF - IDR - IEP - ILS - INR - IQD - IRR - ISK - ITL - JMD - JOD - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LUF - LVL - LYD - MAD - MDL - MGF - MKD - MMK - MNT - MOP - MRO - MUR - MVR - MWK - MXN - MXP - MYR - MZM - NAD - NGN - NIC - NIO - NLG - NOK - NPR - NZD - OMR - PAB - PEN - PES - PGK - PHP - PKR - PLN - PLZ - PTE - PYG - QAR - ROL - RUR - RWF - SAR - SBD - SCR - SDD - SDP - SEK - SGD - SHP - SIT - SKK - SLL - SM - SOS - SRG - STD - SUR - SVC - SYP - SZL - THB - TMM - TND - TOP - TRL - TTD - TWD - TZS - UAH - UGS - UGX - USD - UYP - UYU - UZS - VND - VUV - VAL - WST - XAF - XCD - XOF - XPF - YER - YUD - ZAR - ZMK - ZRZ - ZWD example: USD Term: type: object description: > Defines the duration of an account, including the numeric length and the corresponding time unit (such as days, months, or years). properties: duration: type: integer description: Numeric length of the account term in the unit given by termType. format: int64 example: 12 termType: $ref: '#/components/schemas/TermType' example: duration: 12 termType: MONTHS TermType: type: string description: > Specifies the time unit applied to an account term or duration, indicating whether the term is measured in days, weeks, months, or years. enum: - DAYS - WEEKS - MONTHS - YEARS - UNKNOWN example: MONTHS CustomerAccountsResponse: type: array description: > Collection of a customer's accounts with embedded transaction data. The response may include multiple account types (e.g., deposit, loan, investment, or tiered loan). Each item represents a single account containing common account attributes and a nested array of transactions associated with that account. items: $ref: '#/components/schemas/UXAccount' example: - accountHidden: false accountNumber: 00000019199 accountStatus: open: false closed: true negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false accountType: diAccountType: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking balance: availableBalance: amount: 12.35 currencyCode: USD currentBalance: amount: 10 currencyCode: USD category: DEPOSIT description: General Checking diAccountType: 0 fiAccountTypeDesc: Checking fiRawAccountType: 1 fiAccountType: 1 historyAllowed: true id: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 lastDepositAmount: amount: 125 currencyCode: USD micrNumber: 191000XXXXXXX nickName: General Checking rdcAccountValue: 0 ownershipType: PRIMARY regDLimits: maxTransferCount: 6 maxCheckCount: 3 maxRegDCount: 9 accountTransaction: - accountId: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: 91HEabYOBIjKaWD0GYiP6cO2agDueZM7hlzNU_jKNeo persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true - accountId: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 amount: amount: 14006.5 currencyCode: USD creditTransaction: true description: Return of Goods2 effectiveDate: '2026-05-02' fiId: '00016' id: tQ_o7HFC-TCrsdOLTbNnSuNF2WFT23RxKgEoeIB1uFg persistentTnum: true transactionDate: '2026-05-02' transactionNumber: '5' transactionType: RETURN_OF_GOODS pending: true - accountHidden: false accountNumber: '1316' accountStatus: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false accountType: diAccountType: CREDIT_CARD_LOAN fiRawAccountType: 64 fiAccountType: 64 description: Credit Card balance: availableBalance: amount: 4779.8 currencyCode: USD currentBalance: amount: 10320.2 currencyCode: USD category: LOAN description: Visa diAccountType: 0 fiAccountTypeDesc: Credit Card fiRawAccountType: 64 fiAccountType: 64 historyAllowed: true id: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs interestPriorYearToDate: amount: 0 currencyCode: USD nickName: Visa rdcAccountValue: 0 ownershipType: PRIMARY accountTransaction: - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: A5h9zHkDOMQ8aNppXFDq72OK6PY3FGtitPCb3M-APXs persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 14006.5 currencyCode: USD creditTransaction: true description: Return of Goods2 effectiveDate: '2026-05-02' fiId: '00016' id: MVKmU2samTHjf8r-dwJXB78xIpeRURgexL0d8_8_3c8 persistentTnum: true transactionDate: '2026-05-02' transactionNumber: '5' transactionType: RETURN_OF_GOODS pending: true UXAccount: type: object description: > Represents an individual customer account within the aggregated accounts-and-transactions response. Includes core account details and a collection of transactions associated with the account. required: - customerId - id - category - accountType - accountNumber - balance - accountTransaction properties: accountHidden: type: boolean description: Indicates whether the account is hidden from the user's view. example: false accountNumber: type: string description: > Account number associated with the account. The value may be masked depending on client entitlements and requested scopes. example: '0101' accountStatus: $ref: '#/components/schemas/AccountStatus1' accountType: $ref: '#/components/schemas/AccountType1' achCount: description: > Number of Automated Clearing House (ACH) transactions associated with the account. type: integer format: int64 example: 7 balance: $ref: '#/components/schemas/Balance' billPayAccountNumber: type: string description: Account identifier used for bill payment services. example: '9900001004' billPayId: type: string description: Unique identifier for the account within bill payment services. example: tEmNvl4I5jkVov2t1LVmQXR7K4DxUFUuOjUOVJpDfiU= category: $ref: '#/components/schemas/AccountCategory' currentYearEligibleContribution: type: object description: > Eligible contribution amount for the current calendar year, as determined by applicable account or regulatory rules. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 currentYearMaxContribution: type: object description: > Maximum contribution amount allowed for the account during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 description: type: string description: Readable description or name of the account. example: Checking Account fiAccountTypeDesc: type: string description: > Account description returned from the host. Financial institution can send custom account type description example: Checking fiRawAccountType: type: integer description: Raw account type code from the host. format: int64 example: 1 fiAccountType: type: integer description: Financial institution specific defined account type code. format: int64 example: 1 customerId: type: string description: >- Unique identifier for the institution customer associated with the account. example: 8fe733f4e27246908f92e8f7c0b96847 historyAllowed: type: boolean description: Indicates whether transaction history is available for the account. example: true hostAccountType: type: string description: Account type code as defined by the host system. example: '204045' id: type: string description: Unique account identifier (encrypted key). example: FJLqiQAy1lvswlZXcu9rA0mD8ohakVblGGbi-f-r29A interestPriorYearToDate: type: object description: Interest accrued during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 11.11 interestRate: type: number description: Interest rate currently applied to the account. format: float example: 3.5 lastDepositAmount: type: object description: Amount of the most recent deposit made to the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 lastDividendAmount: type: object description: Amount of the most recent dividend credited to the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 lastInterestPaymentAmount: type: object description: Amount of the most recent interest payment. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 35 lastInterestPaymentDate: type: string description: Date of the most recent interest payment. format: date example: '2024-05-02' lastStatementStartDate: type: string description: Start date of the most recent statement cycle. format: date example: '2024-03-01' lastStatementEndDate: type: string description: End date of the most recent statement cycle. format: date example: '2024-03-31' lastYearEligibleContribution: type: object description: > Eligible contribution amount for the prior calendar year, as determined by applicable account or regulatory rules. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 lastYearMaxContribution: type: object description: > Maximum contribution amount allowed for the account during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 micrNumber: type: string description: > Magnetic Ink Character Recognition (MICR) number associated with the account, when applicable. example: '27347282927' nickName: type: string description: User‑defined nickname for the account. example: Daily Money Jar nonQualifiedRate: type: number description: Interest rate applied when the account is non‑qualified. format: float example: 2.5 overdraftAccountNumber: type: string description: Account number of the overdraft funding source. example: '873873383' overdraftAvailableAmount: type: object description: Amount currently available for overdraft coverage. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 overdraftLimit: type: object description: Maximum overdraft amount allowed for the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 200 ownershipType: type: string description: Indicates the ownership relationship of the account. enum: - PRIMARY - JOINT - CROSS example: PRIMARY posCount: type: integer description: >- Number of point of sale (POS) transactions associated with the account. format: int64 example: 10 primaryHolderId: type: string description: Identifier of the primary account holder. example: '9837838217' primaryHolderName: type: string description: Name of the primary account holder. example: Finley the Banker regDLimits: $ref: '#/components/schemas/RegDLimits' rewardsCount: type: integer description: 'Number of reward transactions or accruals, when applicable.' format: int64 example: 10 taxPriorYearToDate: type: object description: Taxes accrued during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 89.65 taxYearToDate: type: object description: Taxes accrued during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 105.45 tier1BalanceDesc: type: string description: >- Balance threshold description for tier 1 of a qualified rewards account. example: '100000.00' tier1QualifiedRate: type: number description: Interest rate applied to balances qualifying for tier 1 rewards. format: float example: 5.5 tier2BalanceDesc: type: string description: >- Balance threshold description for tier 2 of a qualified rewards account. example: '10000.00' tier2QualifiedRate: type: number description: Interest rate applied to balances qualifying for tier 2 rewards. format: float example: 4.5 totalFundsAvailable: type: object description: > Total amount of funds currently available for use or withdrawal from the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10000 tpvReference: type: string description: >- External third‑party vendor reference identifier associated with the account. example: V5409-SAML_TRUHOME accountTransaction: type: array description: > Collection of transactions associated with this account. Each item represents a single transaction record. items: $ref: '#/components/schemas/AccountTransaction' example: - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: A5h9zHkDOMQ8aNppXFDq72OK6PY3FGtitPCb3M-APXs persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true - accountId: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs amount: amount: 14006.5 currencyCode: USD creditTransaction: true description: Return of Goods2 effectiveDate: '2026-05-02' fiId: '00016' id: MVKmU2samTHjf8r-dwJXB78xIpeRURgexL0d8_8_3c8 persistentTnum: true transactionDate: '2026-05-02' transactionNumber: '5' transactionType: RETURN_OF_GOODS pending: true AccountTransaction: type: object description: > Represents a transaction associated with an account within the aggregated response. Each transaction includes details such as identifiers, transaction type, and amount-related attributes. required: - fiId - id - accountId - amount - transactionType - creditTransaction - persistentTnum - pending properties: accountId: type: string description: Identifier of the account to which the transaction belongs. example: dwLbcmXN4AZnVqN7XP-SA1eHqCeNYmT8C2yITbmRx7M amount: type: object description: Monetary amount of the transaction. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6011 amountToEscrow: type: object description: > Portion of the transaction amount applied to an escrow balance, typically used for loan-related payments such as taxes or insurance and held separately from principal and interest. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 300 amountToInterest: type: object description: > Portion of the transaction amount applied to accrued interest, typically for loan or credit account payments, representing the cost of borrowing separate from principal and escrow. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 20 amountToPrincipal: type: object description: > Portion of the transaction amount applied to reduce the outstanding principal balance, typically applicable to loan or credit accounts. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 200 checkImageIdentifier: type: string description: > Service-generated identifier for the associated image, derived from transaction attributes and host image data. Used as the client-facing key when requesting images. example: dI1CloDSI6TtmsVo2AtPvRhoLL9MPABNsVKMuGtmFdE checkImageLocator: type: string description: > Host-provided locator identifying the image on the core system. May be present even when other image fields are not populated. example: '231' checkNumber: type: integer format: int64 description: > Check or share draft number associated with this transaction, when applicable. example: 160 checkNumberStr: type: string description: > String representation of the check or share draft number associated with this transaction, when applicable. example: '160' creditTransaction: type: boolean description: > Indicates whether the transaction is a credit (`true`) or a debit (`false`) to the account. example: true depositSlipIdentifier: type: string description: > Specifies the category of the banking image, identifying whether the image represents a check, deposit slip, statement, credit card statement, or other document. enum: - UNKNOWN - CHECK - DEPOSIT_SLIP - STATEMENT - CC_STATEMENT - DOCUMENT - DEPOSIT_CHECK example: DEPOSIT_SLIP description: type: string description: > Longer, detailed description of the transaction provided by the source system. example: Return merchandise to customer effectiveDate: type: string description: > Date on which the transaction effects are applied to the account balance, which may differ from the transaction date for pending or backdated items. format: date example: '2026-04-26' fee: type: object description: 'Fee amount associated with the transaction, when applicable.' allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 fiId: type: string description: >- Identifier of the financial institution to which the account belongs. example: '00016' id: type: string description: A unique identifier for the transaction. example: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 ledgerBalance: type: object description: > Account balance after the transaction is applied—representing the ledger balance for deposit accounts or the remaining principal balance for loan accounts. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1500 memo: type: string description: > Short, optional memo text associated with the transaction provided by the source system or the customer. example: Return of Goods micr: type: string description: > Magnetic Ink Character Recognition (MICR) number associated with the transaction, typically derived from check processing. example: '206760951' pending: type: boolean description: > Indicates whether the transaction is pending and has not yet been fully posted to the account. example: false persistentTnum: type: boolean description: > Indicates whether the transaction is eligible for export through supported export or reporting features (for example OFX download). example: true transactionDate: type: string description: > Date on which the transaction activity occurred, as reported by the source system. format: date example: '2026-04-26' transactionId: type: string description: > Unique transaction identifier assigned by the host system for this transaction. example: 20220916SYSCDCDI120 transactionNumber: type: string description: > Host or institution-assigned transaction number from the upstream system with format defined by the source system. example: '15' transactionType: type: string description: > Identifies the category of a financial transaction, such as a deposit, withdrawal, transfer, payment, fee, interest posting, adjustment, or refund. enum: - WITHDRAWAL - CHECK - SAVINGS_WITHDRAWAL_PASSBOOK - SAVINGS_WITHDRAWAL_OTHER - TELEPHONE_TRANSFER_DEBIT - TRANSFER_DEBIT - ADVANCE - AUTOMATIC_DEBIT - ATM_WITHDRAWAL - ELECTRONIC_TRANSFER_DEBIT - POS_PURCHASE - BILL_PAYMENT - ACH_CHECK - SERVICE_CHARGE - CHECK_BOOK_CHARGE - ATM_FEE - POS_PURCHASE_FEE - STOP_PAYMENT_FEE - INTEREST_CHARGE_NORMAL - INSUFFICIENT_FUNDS_CHARGE - RETURNED_CHECK_FEE - OVERDRAFT_FEE - EARLY_WITHDRAWAL_FEE - LEDGER_ADJUSTMENT_DEBIT - MISCELLANEOUS_DEBIT - RETAIL_PURCHASE - MAIL_ORDER_OR_TELEPHONE_PURCHASE - CASH_ADVANCE - ANNUAL_FEE - LATE_PAYMENT_FEE - INTEREST_CHARGE - DEBIT_ADJUSTMENT - DEPOSIT - TELEPHONE_TRANSFER_CREDIT - TRANSFER_CREDIT - PAYMENT - DIVIDEND - DIRECT_DEPOSIT - ATM_DEPOSIT - ELECTRONIC_TRANSFER_CREDIT - POS_CREDIT - BILL_PAYMENT_CREDIT - ACH_CREDIT - INTEREST_POSTING - LEDGER_ADJUSTMENT_CREDIT - MISCELLANEOUS_CREDIT - RETURN_OF_GOODS - REFUND - PAYMENT_CREDIT_CARD - CREDIT_ADJUSTMENT example: RETURN_OF_GOODS example: accountId: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 amount: amount: 6011 currencyCode: USD creditTransaction: true description: Return of Goods1 effectiveDate: '2026-05-12' fiId: '00016' id: 91HEabYOBIjKaWD0GYiP6cO2agDueZM7hlzNU_jKNeo persistentTnum: true transactionDate: '2026-05-12' transactionNumber: '71' transactionType: RETURN_OF_GOODS pending: true Balance: type: object description: > Represents monetary balances associated with an account, including current, available, and statement-related amounts. Not all balance fields apply to every account type. properties: availableBalance: type: object description: > Amount currently available for withdrawal or use, after accounting for pending transactions and holds. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 900 averageStatementBalance: type: object description: > Average balance of the account over a defined period, typically used for interest or fee calculations. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 950 currentBalance: type: object description: Current total balance of the account at the time of retrieval. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1000 example: availableBalance: currencyCode: USD amount: 900 currentBalance: currencyCode: USD amount: 1000 AccountStatus1: type: object description: > Set of status indicators describing the current state and conditions of the account. required: - open - closed - negativeBalance - delinquent - inCollection - overLimit - writtenOff - creditBalance - paymentCoupon - retirementPlan - retPlanOwnedByDeceased properties: open: type: boolean description: Indicates whether the account is currently open and active. example: true closed: type: boolean description: Indicates whether the account has been closed. example: false negativeBalance: type: boolean description: Indicates whether the account currently has a negative balance. example: false delinquent: type: boolean description: > Indicates whether the account is delinquent due to missed or late payments. example: false inCollection: type: boolean description: Indicates whether the account has been placed in collections. example: false overLimit: type: boolean description: > Indicates whether the account balance has exceeded an applicable credit or overdraft limit. example: false writtenOff: type: boolean description: > Indicates whether the account balance has been written off by the financial institution. example: false creditBalance: type: boolean description: > Indicates whether the account has a positive credit balance, representing a credit or refundable amount owed to the account holder. example: false paymentCoupon: type: boolean description: Indicates whether payment coupons are associated with the account. example: false retirementPlan: type: boolean description: Indicates whether the account is associated with a retirement plan. example: false retPlanOwnedByDeceased: type: boolean description: Indicates whether the account is owned by a deceased person. example: false approved: type: boolean description: > Indicates whether the account has been approved by the financial institution. example: true notApproved: type: boolean description: > Indicates whether the account has not been approved by the financial institution. example: false deleted: type: boolean description: > Indicates whether the account has been marked as deleted or deactivated in the system. example: false verified: type: boolean description: > Indicates whether the account has been verified by the financial institution. example: true example: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false approved: true notApproved: false deleted: false verified: true AccountType1: type: object description: > Describes the type of account, including the raw account type code and the account type from host. properties: diAccountType: $ref: '#/components/schemas/DIAccountType1' fiRawAccountType: type: integer description: Raw account type code from the host. format: int64 example: 1 fiAccountType: type: integer description: Financial institution specific defined account type code. format: int64 example: 1 description: type: string description: > Account description returned from the host. Financial institution can send custom account type description example: Checking example: diAccountType: CHECKING fiRawAccountType: 1 fiAccountType: 1 description: Checking DIAccountType1: type: string description: | Describes the type of account classified by Candescent. enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - USER_DEFINED - RETIREMENT_IRA example: CHECKING RegDLimits: type: object description: > Tracks Regulation D–related transaction limits and usage counts for an account. These counters are used to monitor restricted transactions such as transfers and checks within a defined period. properties: maxTransferCount: type: integer description: > Maximum number of transfer transactions allowed under Regulation D for the applicable period. format: int64 example: 6 maxCheckCount: type: integer description: > Maximum number of check transactions allowed under Regulation D for the applicable period. format: int64 example: 3 maxRegDCount: type: integer description: > Maximum total number of Regulation D–restricted transactions allowed for the period. format: int64 example: 9 hostTransferCount: type: integer description: > Number of transfer transactions recorded by the host system for the current Regulation D period. format: int64 example: 2 hostCheckCount: type: integer description: > Number of check transactions recorded by the host system for the current Regulation D period. format: int64 example: 3 example: maxTransferCount: 6 maxCheckCount: 3 maxRegDCount: 9 hostTransferCount: 2 hostCheckCount: 3 Error1: type: object description: > Standard error object containing an application-specific error code and a descriptive message explaining the issue. required: - status - code - message properties: status: type: integer description: HTTP status code indicating the outcome of the request. format: int32 example: 400 code: type: string description: Application-specific error code. example: UXU_10011 message: type: string description: Detailed description of the error. example: >- JWT token institution customers id is not matching customer id path param example: status: 400 code: UXU_10011 message: >- JWT token institution customers id is not matching customer id path param Accounts: type: object description: > Represents the collection of accounts associated with a customer. The response may include multiple account types (such as deposit, loan, investment, or tiered loan accounts). Each account is returned as a single object containing common account fields along with any applicable account‑type‑specific attributes. required: - account properties: account: type: array description: > List of accounts belonging to the financial institution customer. Each entry represents a single account and may conform to a specific account subtype schema (e.g., deposit, loan, investment, or tiered loan) based on the account category. items: anyOf: - $ref: '#/components/schemas/TieredLoanAccount' - $ref: '#/components/schemas/InvestmentAccount' - $ref: '#/components/schemas/LoanAccount' - $ref: '#/components/schemas/DepositAccount' example: - id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM fiCustomerId: value: 77b142adea5747cb90a880d225c217c6 fiId: value: '00016' description: Personal Checking nickName: Personal Checking displayAccountNumber: '19032' accountNumber: hostValue: '19032' displayValue: '19032' rawHostValue: '19032' category: DEPOSIT accountType: CHECKING fiAccountType: type: 1 rawType: 1 description: Checking ownershipType: PRIMARY balance: currentBalance: currencyCode: USD amount: 512840.1 accountStatus: OPEN accountStatuses: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false displayFlag: summary: true transferFrom: true transferTo: true onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true enabled: true accountHidden: false memberNumber: '105890765' Account1: type: object description: > Represents a customer financial account containing common attributes shared across all account types. Additional fields may appear for specific account subtypes such as deposit, loan, or investment accounts. required: - id - category - accountType - fiId - accountNumber - displayAccountNumber - fiAccountType - ownershipType - balance - enabled - accountHidden - memberNumber - displayFlag properties: accountHidden: description: Indicates whether the account is hidden from the user’s view. type: boolean example: false accountNumber: type: object description: Account number associated with the account. allOf: - $ref: '#/components/schemas/AccountNumber' properties: hostValue: example: 00000019199 displayValue: example: 00000019199 billPayValue: example: 00000019199 pfmValue: example: 00000019199 rdcAccountValue: example: 00000019199 rawHostValue: example: 00000019199 accountStatus: $ref: '#/components/schemas/AccountStatus2' accountStatusInt: description: Numeric representation of the account status. type: integer format: int64 example: 1 accountStatuses: $ref: '#/components/schemas/AccountStatuses' accountType: $ref: '#/components/schemas/DIAccountType2' achCount: description: > Number of Automated Clearing House (ACH) transactions associated with the account. type: integer format: int64 example: 7 alternateUserIdentifier: type: object description: Alternate customer identifier associated with the account. allOf: - $ref: '#/components/schemas/FICustomerId1' properties: value: example: V001235021 rmKey: type: string description: > Identifier for the relationship manager associated with the account, when applicable. example: '99000000732' associatedMembers: $ref: '#/components/schemas/AssociatedMembers' asOfDate: type: string description: > Date and time when the account data was most recently updated by the host system. example: '2021-06-25-07:00' balance: $ref: '#/components/schemas/Balance1' bbEntitlements: $ref: '#/components/schemas/Entitlements' billPayAccountNumber: type: string description: Account identifier used for bill payment services. example: '9900001004' billPayId: type: object description: Unique identifier for the account within bill payment services. allOf: - $ref: '#/components/schemas/AccountId' properties: type: example: BPID value: example: tEmNvl4I5jkVov2t1LVmQXR7K4DxUFUuOjUOVJpDfiU= category: $ref: '#/components/schemas/AccountCategory1' ccAccountId: type: string description: Account identifier formatted for use by Customer Central systems. example: 9900001001^1 dcBillPayAccountNumber: type: string description: > Bill pay account number formatted for OFX Direct Connect integrations. The value is formatted and masked according to configuration. example: '**ACIF10019052001:1001' dcExportAccountNumber: type: string description: > Account number formatted for OFX Direct Connect integrations. The value uses Direct Connect–specific masking and formatting rules, configured separately from standard export account number formats. example: 0001-99000010019 defaultAccountId: type: object description: > Hashed account identifier generated using the default set of account elements. This value is returned when configurable account ID generation is enabled and represents the standard hashed account ID format, provided alongside the primary account identifier. allOf: - $ref: '#/components/schemas/AccountId' properties: value: example: kX6yRtLw7cKsydP-wBQUvt4rMW3P_aQKBr4awejuSsQ description: type: string description: Readable description or name of the account. example: Checking Account diAccountType: type: integer format: int32 description: > Normalized account type value derived from Candescent, excluding user‑defined account types. example: 1 displayAccountNumber: type: string description: Account number shown to the user for reference. example: 00000019199 displayCardNumber: type: string description: Masked card number shown to the user for reference. example: '*5124' displayRoutingNumber: type: string description: 'Routing number shown to the user for reference, when applicable.' example: 0011156780 displayFlag: $ref: '#/components/schemas/DisplayFlag' displayPrimaryMemberNumber: type: string description: >- Masked member number shown to identify the primary associated member. example: '*8217' enabled: type: boolean description: >- Indicates whether the account is enabled based on platform configuration. example: true exportAccountNumber: type: string description: > Account number formatted for external data exports. Suitable for use in financial software like Quicken or QuickBooks. example: 0001-99000010019 externalBroker: type: string description: > Identifier of an external broker associated with the account, when applicable. example: testsrvc fiAccountType: $ref: '#/components/schemas/FIAccountType' fiCustomerId: type: object description: Identifier of the customer associated with the account. allOf: - $ref: '#/components/schemas/FICustomerId1' properties: value: example: 77b142adea5747cb90a880d225c217c6 fiId: type: object description: Identifier of the financial institution that owns the account. allOf: - $ref: '#/components/schemas/IdType1' properties: value: example: '00016' hostAccountType: type: string description: Account type code as defined by the host system. example: '204045' id: type: object description: Unique account identifier (encrypted key). allOf: - $ref: '#/components/schemas/AccountId' properties: value: example: Ij22Oio9Fcdt_VqkoCY_ZTuPCbiXfcHe_8j7MCdAug4 interestPriorYearToDate: type: object description: Interest accrued during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 11.11 interestRate: type: number description: Interest rate currently applied to the account. format: float example: 3.5 interestYearToDate: type: object description: Interest accrued during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 21.11 interfaceId: type: string description: Interface identifier for the account. example: 7100045-1-0 isHybrid: type: boolean description: >- Indicates whether the account supports both real‑time and batch data updates. example: true lastDepositAmount: type: object description: Amount of the most recent deposit made to the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 lastDividendAmount: type: object description: Amount of the most recent dividend credited to the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 lastInterestPaymentAmount: type: object description: Amount of the most recent interest payment. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 35 lastInterestPaymentDate: type: string description: Date of the most recent interest payment. example: '2024-05-02-07:00' lastStatementCycleDate: type: string description: Start date of the most recent statement cycle. example: '2024-04-05-07:00' lastStatementThruDate: type: string description: End date of the most recent statement cycle. example: '2024-03-31-07:00' memberNumber: type: string description: Member number associated with the account. example: '1234567890' micrNumber: type: string description: > Magnetic Ink Character Recognition (MICR) number associated with the account, when applicable. example: '27347282927' nickName: type: string description: User‑defined nickname for the account. example: Daily Money Jar nonQualifiedRate: type: number description: Interest rate applied when the account is non‑qualified. format: float example: 2.5 overdraftAccountNum: type: object description: > Account number object representing the overdraft funding source, including formatted and host‑specific values. allOf: - $ref: '#/components/schemas/AccountNumber' properties: hostValue: example: '873873383' rawHostValue: example: '873873383' overdraftAccountNumber: type: string description: > Account number of the overdraft funding source provided as a simple string value. example: '873873383' overdraftAvailableAmount: type: object description: Amount currently available for overdraft coverage. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 overdraftLimit: type: object description: Maximum overdraft amount allowed for the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 200 ownershipType: $ref: '#/components/schemas/OwnershipType' posCount: type: integer description: >- Number of point of sale (POS) transactions associated with the account. format: int64 example: 10 primaryHolderId: type: object description: Identifier of the primary account holder. allOf: - $ref: '#/components/schemas/FICustomerId1' properties: value: example: '9837838217' primaryHolderAlternateId: type: object description: Alternate identifier of the primary account holder. allOf: - $ref: '#/components/schemas/FICustomerId1' properties: value: example: '454545' primaryHolderName: type: string description: Name of the primary account holder. example: Finley the Banker regDLimits: $ref: '#/components/schemas/RegDLimits1' rewardsCount: type: integer description: 'Number of reward transactions or accruals, when applicable.' format: int64 example: 10 routingNumber: type: string description: > Bank routing number used to identify the financial institution for the account. example: '222341234' taxPriorYearToDate: type: object description: Taxes accrued during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 89.65 taxYearToDate: type: object description: Taxes accrued during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 105.45 tier1BalanceDesc: type: string description: >- Balance threshold description for tier 1 of a qualified rewards account. example: '100000.00' tier1QualifiedRate: type: number description: Interest rate applied to balances qualifying for tier 1 rewards. format: float example: 5.5 tier2BalanceDesc: type: string description: >- Balance threshold description for tier 2 of a qualified rewards account. example: '10000.00' tier2QualifiedRate: type: number description: Interest rate applied to balances qualifying for tier 2 rewards. format: float example: 4.5 totalFundsAvailable: type: object description: > Total amount of funds currently available for use or withdrawal from the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10000 tpvProductCode: type: string description: > Product code associated with the account as defined by an external third‑party vendor. example: LOAN_DISCOUNT tpvReference: type: string description: >- External third‑party vendor reference identifier associated with the account. example: V5409-SAML_TRUHOME transferRestriction: $ref: '#/components/schemas/TransferRestriction' roles: $ref: '#/components/schemas/Roles' DepositAccount: allOf: - $ref: '#/components/schemas/Account1' - type: object description: > Represents a deposit account, extending a standard account with deposit‑specific attributes such as interest, Automated Clearing House (ACH) identifiers, cards, and contribution or distribution amounts. Not all fields apply to every deposit account type. required: - fiCustomerId - accountStatus - accountStatuses - description properties: accruedInterest: type: object description: > Interest amount that has accrued on the account but has not yet been credited or paid. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 5 annualPercentageYield: type: number description: > Annual Percentage Yield (APY) applicable to the account, expressed as a percentage. format: float example: 3.5 achId: type: string description: > Identifier used for Automated Clearing House (ACH) transactions associated with the deposit. example: '19032' issueDate: type: string description: Date the deposit account was opened or issued. example: '2019-01-19-07:00' atmCard: $ref: '#/components/schemas/PlasticCard' currentYearEligibleContribution: type: object description: > Eligible contribution amount for the current calendar year, as determined by applicable account or regulatory rules. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 lastYearEligibleContribution: type: object description: > Eligible contribution amount for the prior calendar year, as determined by applicable account or regulatory rules. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 currentYearMaxContribution: type: object description: > Maximum contribution amount allowed for the account during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 lastYearMaxContribution: type: object description: > Maximum contribution amount allowed for the account during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 currentYearContribution: type: object description: > Total contribution amount made to the account during the current calendar year, when applicable (for example, retirement accounts). allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1500 lastYearContribution: type: object description: > Total contribution amount made to the account during the prior calendar year, when applicable. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 6000 currentYearDistribution: type: object description: > Total distribution amount taken from the account during the current calendar year, when applicable. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 2499.05 lastYearDistribution: type: object description: > Total distribution amount taken from the account during the prior calendar year, when applicable. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 4523.4 requiredMinimumDistribution: type: object description: >- Required minimum distribution amount for the account, when applicable. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 800 example: id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM fiCustomerId: value: 77b142adea5747cb90a880d225c217c6 fiId: value: '00016' interfaceId: 1803757274-19022-1 description: Personal Checking nickName: Personal Checking displayAccountNumber: '19032' accountNumber: hostValue: '19032' displayValue: '19032' billPayValue: '19032' pfmValue: '19032' rdcAccountValue: '19032' rawHostValue: '19032' category: DEPOSIT accountType: CHECKING fiAccountType: type: 1 rawType: 1 description: Checking ownershipType: PRIMARY balance: currentBalance: currencyCode: USD amount: 512840.1 availableBalance: currencyCode: USD amount: 12340.1 lastStatementBalance: currencyCode: USD amount: 987.66 asOfDate: '2021-06-25-07:00' accountStatus: OPEN accountStatuses: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false displayFlag: summary: true transferFrom: true transferTo: true onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true regDLimits: maxTransferCount: 6 maxCheckCount: 3 maxRegDCount: 9 routingNumber: 011053826 interestYearToDate: currencyCode: USD amount: 0 interestPriorYearToDate: currencyCode: USD amount: 0 enabled: true accountHidden: false exportAccountNumber: '19032' memberNumber: '105890765' billPayId: type: BPID value: c68jZFQJjZyZgZhcT/RL1un9E5qyzaRXa0N8JPNwhBo= ccAccountId: 19032^1 accountStatusInt: 0 micrNumber: 190000XXXXXXX lastDepositAmount: currencyCode: USD amount: 125 dcExportAccountNumber: 105890761K19032 dcBillPayAccountNumber: '19032' achId: '19032' LoanAccount: allOf: - $ref: '#/components/schemas/Account1' - type: object description: > Represents a loan account, extending a standard account with loan‑specific balances, payment details, terms, and payoff information. Not all fields apply to every loan type. required: - fiCustomerId - accountStatus - accountStatuses - description properties: nextPaymentAmount: type: object description: | Amount due for the next scheduled payment on the account. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 9530.8 nextPaymentDate: type: string description: Date on which the next scheduled payment for the account is due. example: '2025-03-25-07:00' loanNoteNumber: type: string description: > Identifier assigned to the loan note by the financial institution. example: '88' noteNumber: type: string description: >- Alternate or additional note identifier associated with the loan. example: '99' payOffAmount: type: object description: > Total amount due to pay off the loan, including principal, interest, fees, and other charges. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 675.26 calculatedPayOffAmount: type: object description: > System‑calculated estimate of the total amount required to pay off the loan, based on current balances and accrued interest. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10200 payOffDate: type: string description: Date through which the payoff amount is valid. example: '2029-03-25-07:00' minimumPayment: type: object description: > Minimum required payment amount due for the current billing period to avoid delinquency or additional charges. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 25 lineOfCreditLimit: type: object description: > Maximum amount of funds that can be borrowed on the account, typically associated with a line of credit or credit card limit. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 2000 escrowInterest: type: object description: > Amount of interest held in escrow for the account, typically for taxes, insurance, or other purposes. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 180.1 escrowTaxDueDate: type: string description: Due date for escrow‑related tax payments. example: '2025-04-15-07:00' escrowYearToDate: type: object description: > Total amount of escrow interest accrued on the loan during the current calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 299 escrowPriorYearToDate: type: object description: > Total amount of escrow interest accrued on the loan during the prior calendar year. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 399 maturityDate: type: string description: Date when the account reaches the end of its term. format: date example: '2026-02-07-08:00' loanOriginationDate: type: string description: > Date on which the loan was originally issued or originated, representing the effective date of the loan agreement. example: '2021-02-07-08:00' term: type: integer format: int64 description: >- Numeric length of the account term in the unit given by termType. example: 60 termType: $ref: '#/components/schemas/TermType1' pastPrincipalDueDate: type: string description: > Date the principal portion of a required payment was due and became overdue for payment on the account. example: '2026-01-10-07:00' lateChargesDue: type: object description: Amount of late charges currently due on the loan. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 lastPrincipalPaymentAmount: type: object description: > Amount of the most recent payment that was applied toward the loan principal, representing the principal amount of the payment. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 250 principalInterest15YearTermAmount: type: object description: > Principal and interest amount calculated based on a 15‑year term, when applicable. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 2000 paymentRule: $ref: '#/components/schemas/PaymentRuleType' originalLoanAmount: type: object description: Original principal amount of the loan at the time it was issued. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 250000 issueDate: type: string description: Date the loan was issued or funded. example: '2021-02-07-08:00' delinquencyAmount: type: object description: Total amount currently delinquent on the loan. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 190 pastDueInterestAmount: type: object description: Amount of interest that is past due. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 10 pastDuePrincipal: type: object description: Amount of principal that is past due. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 5000 accruedInterest: type: object description: Interest that has accrued but has not yet been billed or paid. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 400 cashAdvanceLimit: type: object description: 'Maximum amount available for cash advances, when supported.' allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 3000 availableCashAdvance: type: object description: Amount currently available for cash advance transactions. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 2500 achId: type: string description: > Identifier used for Automated Clearing House (ACH) transactions associated with the loan. example: '9900002007' hostPromotions: $ref: '#/components/schemas/HostPromotions' example: id: value: OAmTGpaBf0kBgMmQeNPqmnqX_QgDFp9XzCwpWwspfUs fiCustomerId: value: 77b142adea5747cb90a880d225c217c6 fiId: value: '00016' description: Visa nickName: Visa displayAccountNumber: '1316' accountNumber: hostValue: '1316' displayValue: '1316' pfmValue: '1316' rdcAccountValue: '1316' rawHostValue: '1316' category: LOAN accountType: CREDIT_CARD_LOAN fiAccountType: type: 64 rawType: 64 description: Credit Card ownershipType: PRIMARY balance: currentBalance: currencyCode: USD amount: 10320.2 availableBalance: currencyCode: USD amount: 4779.8 asOfDate: '2021-06-25-07:00' accountStatus: OPEN accountStatuses: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false displayFlag: summary: true transferFrom: true transferTo: true onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true interestYearToDate: currencyCode: USD amount: 0 interestPriorYearToDate: currencyCode: USD amount: 0 enabled: true accountHidden: false exportAccountNumber: '1316' memberNumber: '105890765' ccAccountId: 1316^64 dcExportAccountNumber: 105890761L1316 dcBillPayAccountNumber: '1316' nextPaymentAmount: currencyCode: USD amount: 9530.8 nextPaymentDate: '2025-03-25-07:00' payOffAmount: currencyCode: USD amount: 675.26 InvestmentAccount: allOf: - $ref: '#/components/schemas/DepositAccount' - type: object description: > Represents an investment account, extending a deposit account with investment‑specific attributes such as maturity, term, and issue amount. Not all fields apply to every investment product. properties: lastRenewalDate: type: string description: >- Date and time when the investment was last renewed or rolled over. example: '2019-11-04-08:00' maturityDate: type: string description: > Date and time when the investment reaches maturity and is due to complete or renew. example: '2021-11-04-07:00' term: type: integer format: int64 description: Length of the investment term. example: 24 issueAmount: type: object description: > Original amount issued or invested when the investment account was opened. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1225 example: id: value: WV_taVXT8CRAJ1Pw2eH0Fx-nDn-hzvLdRSEuinFZBn0 fiCustomerId: value: 77b142adea5747cb90a880d225c217c6 fiId: value: '00016' description: 401K Account nickName: 401K Account displayAccountNumber: '12093' accountNumber: hostValue: '12093' displayValue: '12093' pfmValue: '12093' rawHostValue: '12093' category: INVESTMENT accountType: RETIREMENT_401K fiAccountType: type: 8 rawType: 8 description: 401K ownershipType: PRIMARY balance: currentBalance: currencyCode: USD amount: 123583.67 availableBalance: currencyCode: USD amount: 123583.67 asOfDate: '2021-06-25-07:00' accountStatus: OPEN accountStatuses: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false displayFlag: summary: true transferFrom: false transferTo: false onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true interestYearToDate: currencyCode: USD amount: 0 interestPriorYearToDate: currencyCode: USD amount: 0 enabled: true accountHidden: false exportAccountNumber: '12093' transferRestriction: EXCLUDE_ALL memberNumber: '105890765' ccAccountId: 12093^8 dcExportAccountNumber: 105890761C12093 dcBillPayAccountNumber: '12093' TieredLoanAccount: allOf: - $ref: '#/components/schemas/LoanAccount' - type: object description: > Represents a tiered loan account that is associated with a credit line structure, extending the standard loan account with additional linkage identifiers. properties: creditLineNumber: type: string description: >- Identifier of the credit line associated with this tiered loan account. example: '5' masterAccountNumber: type: string description: > Identifier of the master account that groups or controls this tiered loan within a broader credit arrangement. example: 9900000038^GARBAGE example: id: value: r7wCu8i-NgQILSAHqbg3e3LERnXc8FLoGXTwcJ-9PbU fiCustomerId: value: 8e092d29cbaa4455a0dc38ca300a176f fiId: value: 00936 description: TCL Account - Credit Line nickName: TCL Account - Credit Line displayAccountNumber: '*0038' accountNumber: hostValue: '9900000038' displayValue: '9900000038' pfmValue: '9900000038' rawHostValue: 9900000038^GARBAGE category: TIERED_LOAN accountType: TCL_CREDIT_LINE fiAccountType: type: 1025 rawType: 1025 description: TCL Credit Line ownershipType: PRIMARY balance: currentBalance: currencyCode: USD amount: 1310 availableBalance: currencyCode: USD amount: 1400 asOfDate: '2021-06-25-07:00' accountStatus: OPEN accountStatuses: open: true closed: false negativeBalance: false delinquent: false inCollection: false overLimit: false writtenOff: false creditBalance: false paymentCoupon: false retirementPlan: false retPlanOwnedByDeceased: false displayFlag: summary: true transferFrom: true transferTo: true onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true interestRate: 10.75 enabled: true accountHidden: false exportAccountNumber: '9900000038' memberNumber: CBSLCPFOFFUSR01 ccAccountId: 9900000038^1025 accountStatusInt: 0 diAccountType: 1025 dcExportAccountNumber: CBSLCPFOFFUSR019900000038 dcBillPayAccountNumber: '9900000038' nextPaymentAmount: currencyCode: USD amount: 0 nextPaymentDate: '2008-01-02-08:00' payOffAmount: currencyCode: USD amount: 2008.23 calculatedPayOffAmount: currencyCode: USD amount: 0 lineOfCreditLimit: currencyCode: USD amount: 50000 creditLineNumber: '5' masterAccountNumber: 9900000038^GARBAGE AccountNumber: type: object description: > Represents the various formatted forms of an account identifier used for display, integration, and transaction processing purposes. Different fields may be populated depending on the channel or use case. properties: billPayValue: type: string description: > Account identifier used for bill payment services, when bill pay is enabled for the account. example: 10CBS2CIF029900001001 displayValue: type: string description: > Masked or formatted account number intended for display to users in digital channels. example: '*1001' externalMortgageAccountValue: type: string description: > Account identifier used when the account represents or is linked to an external mortgage. example: MNUMTHREE hostValue: type: string description: > Account number as recognized by the host system, potentially formatted or normalized for platform use. example: '9900001001' pfmValue: type: string description: > Account identifier used for personal financial management (PFM) features and data exports. example: '9900000031' plasticCardValue: type: string description: > Account identifier associated with a linked plastic card, such as for ATM or card‑based transactions. example: F3QpjVH9Wr7w/oULJ52owDWOroARg2LcKcSvND4if2A= rawHostValue: type: string description: > Raw account number value returned directly from the host system without formatting or masking. example: '873873383' rdcAccountValue: type: string description: >- Account identifier used for remote deposit capture (RDC) transactions. example: CBS2CIF021001 wireValue: type: string description: Account identifier used for wire transfer transactions. example: 19023=1803757263 required: - hostValue - displayValue - rawHostValue example: billPayValue: 10CBS2CIF029900001001 displayValue: '*1001' hostValue: '9900001001' rawHostValue: '873873383' Balance1: type: object description: > Represents monetary balances associated with an account, including current, available, and statement-related amounts. Not all balance fields apply to every account type. properties: currentBalance: type: object description: Current total balance of the account at the time of retrieval. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1000 availableBalance: type: object description: > Amount currently available for withdrawal or use, after accounting for pending transactions and holds. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 900 averageDailyBalance: type: object description: > Average balance of the account over a defined period, typically used for interest or fee calculations. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 950 lastStatementBalance: type: object description: Account balance as of the most recent statement closing date. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1200 escrowBalance: type: object description: >- Balance held in escrow, commonly associated with loan or mortgage accounts. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 500 currentPrincipalBalance: type: object description: Outstanding principal balance for loan accounts. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 1400 example: currentBalance: currencyCode: USD amount: 1000 availableBalance: currencyCode: USD amount: 900 AccountStatuses: type: object description: > Collection of boolean flags that represent the current operational, financial, and lifecycle states of an account. properties: approved: type: boolean description: Indicates whether the account has been approved for use. example: true closed: type: boolean description: Indicates whether the account is closed. example: false creditBalance: type: boolean description: Indicates whether the account currently has a credit balance. example: false deleted: type: boolean description: Indicates whether the account has been marked as deleted. example: false delinquent: type: boolean description: >- Indicates whether the account is delinquent due to missed or late payments. example: false inCollection: type: boolean description: Indicates whether the account has been sent to collections. example: false negativeBalance: type: boolean description: Indicates whether the account balance is currently negative. example: false notApproved: type: boolean description: Indicates whether the account has not been approved. example: false open: type: boolean description: Indicates whether the account is currently open and active. example: true overLimit: type: boolean description: >- Indicates whether the account has exceeded its allowed credit or usage limit. example: false paymentCoupon: type: boolean description: Indicates whether a payment coupon is associated with the account. example: false retPlanOwnedByDeceased: type: boolean description: > Indicates whether the account is a retirement plan owned by a deceased individual. example: false retirementPlan: type: boolean description: Indicates whether the account is a retirement plan account. example: false verified: type: boolean description: Indicates whether the account has been verified. example: true writtenOff: type: boolean description: Indicates whether the account balance has been written off. example: false example: approved: true closed: false creditBalance: false deleted: false delinquent: false inCollection: false negativeBalance: false notApproved: false open: true overLimit: false paymentCoupon: false retPlanOwnedByDeceased: false retirementPlan: false verified: true writtenOff: false DisplayFlag: type: object description: > Defines visibility and access flags that control how an account is presented and what actions are available to a user in digital channels. required: - summary - transferFrom - transferTo - onlineStatementViewEnabled - isHistoryEnabled - isHistoryEntitled properties: summary: type: boolean description: >- Indicates whether this account should be displayed in account summary views. example: true transferFrom: type: boolean description: > Indicates whether this account is available as a source account for transfers. example: true transferTo: type: boolean description: > Indicates whether this account is available as a destination account for transfers. example: true onlineStatementViewEnabled: type: boolean description: Indicates whether online statements are available for this account. example: true isHistoryEnabled: type: boolean description: Indicates whether transaction history is supported for this account. example: true isHistoryEntitled: type: boolean description: > Indicates whether the user is entitled to view transaction history for this account. example: true example: summary: true transferFrom: true transferTo: true onlineStatementViewEnabled: true isHistoryEnabled: true isHistoryEntitled: true RegDLimits1: type: object description: > Tracks Regulation D–related transaction limits and usage counts for an account. These counters are used to monitor restricted transactions such as transfers and checks within a defined period. properties: maxTransferCount: type: integer description: > Maximum number of transfer transactions allowed under Regulation D for the applicable period. format: int64 example: 6 maxCheckCount: type: integer description: > Maximum number of check transactions allowed under Regulation D for the applicable period. format: int64 example: 3 hostTransferCount: type: integer description: > Number of transfer transactions recorded by the host system for the current Regulation D period. format: int64 example: 2 hostCheckCount: type: integer description: > Number of check transactions recorded by the host system for the current Regulation D period. format: int64 example: 3 maxRegDCount: type: integer description: > Maximum total number of Regulation D–restricted transactions allowed for the period. format: int64 example: 9 hostTotalRegDCount: type: integer description: > Total number of Regulation D–restricted transactions recorded by the host system for the current period. format: int64 example: 5 example: maxTransferCount: 6 maxCheckCount: 3 hostTransferCount: 2 hostCheckCount: 3 maxRegDCount: 9 hostTotalRegDCount: 5 AssociatedMembers: type: object description: Collection of member identifiers associated with an account. required: - memberNumber properties: memberNumber: type: array description: Member numbers associated with the account. items: type: string description: A single member number. example: '478110150' example: - '478110150' - '478110151' - '478110152' example: memberNumber: - '478110150' - '478110151' - '478110152' FIAccountType: type: object description: > Represents a financial institution–specific account type, using host-defined codes and readable descriptions. required: - type - rawType - description properties: description: type: string description: > Account description returned from the host. Financial institution can send custom account type description example: Checking rawType: type: integer description: Raw account type code from the host. format: int64 example: 1 type: type: integer description: Financial institution specific defined account type code. format: int64 example: 1 example: description: Checking rawType: 1 type: 1 PlasticCard: type: object description: > Represents a physical (plastic) card associated with an account, typically used for ATM access and cash withdrawal transactions. required: - cardNumber properties: cardNumber: type: object description: >- Masked or tokenized card number that uniquely identifies the plastic card. allOf: - $ref: '#/components/schemas/AccountNumber' properties: displayValue: example: '*7890' plasticCardValue: example: F3QpjVH9Wr7w/oULJ52owDWOroARg2LcKcSvND4if2A= atmExpiryDate: $ref: '#/components/schemas/SplitDate' example: cardNumber: displayValue: '*7890' plasticCardValue: F3QpjVH9Wr7w/oULJ52owDWOroARg2LcKcSvND4if2A= atmExpiryDate: month: 3 day: 31 year: 2027 SplitDate: type: object description: > Represents a calendar date split into individual components, typically used to express an ATM card expiration date. required: - month - year properties: month: type: integer description: Two‑digit month of the expiration date (1–12). format: int64 example: 3 day: type: integer description: > Day of the month for the expiration date. May be omitted or ignored when only month and year are applicable. format: int64 example: 31 year: type: integer description: Four‑digit year of the expiration date. format: int64 example: 2027 example: month: 3 day: 31 year: 2027 HostPromotions: type: object description: > Container for promotional offers, special rates, or benefits applied to an account. required: - hostPromotion properties: hostPromotion: type: array description: > Collection of host promotion records associated with the account. Each record represents a promotional offer with its applicable dates, terms, and optional balance information. The array may be empty if no promotions are currently applied. items: $ref: '#/components/schemas/HostPromotion' example: - sequenceNumber: 1 name: Summer Promo type: PROMO rate: 4.5 effectiveDate: '2022-01-01-08:00' expiredDate: '2026-03-12-08:00' terminationDate: '2030-03-11-08:00' balance: currencyCode: USD amount: 100 HostPromotion: type: object description: >- Represents a specific promotional offer or benefit associated with an account. required: - name - balance properties: sequenceNumber: type: integer description: > Sequence number used to order or uniquely identify the promotion within the account context. format: int32 example: 1 name: type: string description: Display name of the promotional offer or benefit. example: Summer Promo type: type: string description: Classification or category of the promotional offer. example: PROMO balance: type: object description: >- Monetary value or balance associated with the promotional offer or benefit. allOf: - $ref: '#/components/schemas/Money' properties: currencyCode: example: USD amount: example: 100 rate: type: number description: >- Promotional rate applied by the offer, such as an interest or discount rate. format: float example: 4.5 effectiveDate: type: string description: Date and time when the promotional offer becomes effective. example: '2022-01-01-08:00' expiredDate: type: string description: Date and time when the promotional offer expires. example: '2026-03-12-08:00' terminationDate: type: string description: >- Date and time when the promotional offer was terminated, if applicable. example: '2030-03-11-08:00' example: sequenceNumber: 1 name: Summer Promo type: PROMO balance: currencyCode: USD amount: 100 rate: 4.5 effectiveDate: '2022-01-01-08:00' expiredDate: '2026-03-12-08:00' terminationDate: '2030-03-11-08:00' TermType1: type: string description: 'Unit used to interpret the loan term, such as months or years.' enum: - DAYS - WEEKS - MONTHS - YEARS - UNKNOWN example: MONTHS PaymentRuleType: type: string description: > Defines the rule applied when evaluating a loan payment amount in relation to the expected loan payment. enum: - EQUAL_OR_LESS_LPAY - EQUAL_LPAY - EQUAL_OR_MORE_LPAY example: EQUAL_LPAY Roles: type: object description: > Container for role information associated with an account. Each role defines an entity-level relationship and the corresponding access or permissions granted to that entity for the account. required: - role properties: role: type: array description: > List of roles assigned to the account. Each role represents a specific relationship between an entity and the account, including attributes that describe permitted actions or special role characteristics. items: $ref: '#/components/schemas/Role' example: - entityName: Finley Banker entityNumber: '1234567890' entityType: CUSTOMER code: '1234567890' description: Finley Banker attributes: canTransact: 'true' isEmployeeRole: 'true' example: role: - entityName: Finley Banker entityNumber: '1234567890' entityType: CUSTOMER code: '1234567890' description: Finley Banker attributes: canTransact: 'true' isEmployeeRole: 'true' Role: type: object description: >- Describes an individual role assigned to an entity in relation to an account. properties: entityName: type: string description: > Name of the entity associated with the role, such as a customer, organization, or user. example: BILL O. PAY entityNumber: type: string description: >- Identifier or reference number of the entity associated with the role. example: '314564' entityType: type: string description: Type or classification of the entity associated with the role. example: PERS code: type: string description: Role code that identifies the type of role or relationship assigned. example: TAX description: type: string description: Description of the role or relationship assigned. example: Tax Reported For attributes: $ref: '#/components/schemas/RoleAttributes' example: entityName: Finley Banker entityNumber: '1234567890' entityType: CUSTOMER code: '1234567890' description: Finley Banker attributes: canTransact: 'true' isEmployeeRole: 'true' RoleAttributes: type: object description: > Attributes that describe role-based capabilities and characteristics associated with a user’s access to an account. properties: canTransact: type: string description: > Indicates whether the role permits the user to initiate or perform transactions on the account. example: 'true' isEmployeeRole: type: string description: > Indicates whether the role represents an employee or internal user role, as opposed to a customer or external role. example: 'true' example: canTransact: 'true' isEmployeeRole: 'true' Entitlements: type: object description: > Container for entitlement information associated with an authenticated business user, including the user identifier and the set of permissions granted across accounts and resources. required: - entitlements properties: authId: type: string description: > Unique identifier for the authenticated institutional user associated with the account. example: aa6aeac29fcc11f0ba6342010a31a10b entitlements: type: array description: > Collection of entitlement records defining the authorized actions the user is permitted to perform on specific accounts and resources. items: $ref: '#/components/schemas/Entitlement' example: - accountDisplayName: Personal Checking - 19032 accountId: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: id: value: view id: value: 1588f6f9-bf6b-44a1-9145-187eedc47027 resource: description: /banking/account/$accountId/details id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM productUserGuid: type: GUID value: 77b142adea5747cb90a880d225c217c6 - accountDisplayName: Personal Checking - 19032 accountId: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: id: value: create id: value: d17ec3b1-8ddc-4717-bc59-a20e96ba0168 resource: description: /banking/account/$accountId/stoppay id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM productUserGuid: type: GUID value: 77b142adea5747cb90a880d225c217c6 example: authId: aa6aeac29fcc11f0ba6342010a31a10b entitlements: - accountDisplayName: Personal Checking - 19032 accountId: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: id: value: view id: value: 1588f6f9-bf6b-44a1-9145-187eedc47027 resource: description: /banking/account/$accountId/details id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM productUserGuid: type: GUID value: 77b142adea5747cb90a880d225c217c6 - accountDisplayName: Personal Checking - 19032 accountId: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: id: value: create id: value: d17ec3b1-8ddc-4717-bc59-a20e96ba0168 resource: description: /banking/account/$accountId/stoppay id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM productUserGuid: type: GUID value: 77b142adea5747cb90a880d225c217c6 Entitlement: type: object description: > Represents a permission granted on a resource, optionally subject to controls such as approval or usage limits. required: - id properties: accountDisplayName: type: string description: Display name of the account. example: Personal Checking - 19032 accountId: type: object description: Unique identifier for the account. allOf: - $ref: '#/components/schemas/AccountId' properties: value: example: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: $ref: '#/components/schemas/Action' id: type: object description: Unique identifier for the entitlement. allOf: - $ref: '#/components/schemas/IdType1' properties: value: example: 1588f6f9-bf6b-44a1-9145-187eedc47027 resource: $ref: '#/components/schemas/Resource' example: accountDisplayName: Personal Checking - 19032 accountId: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM action: id: value: view id: value: 1588f6f9-bf6b-44a1-9145-187eedc47027 resource: description: /banking/account/$accountId/details id: value: TNm2Q9nbabENYI1pMqlrlPwZBzNVF-Uojcs6o1ZDEoM productUserGuid: type: GUID value: 77b142adea5747cb90a880d225c217c6 Action: type: object description: Represents a permission granted on a resource as part of an entitlement. required: - id properties: description: type: string description: Description of the action. example: View banking account details id: type: object description: Unique identifier for the action. allOf: - $ref: '#/components/schemas/IdType1' properties: value: example: view example: description: View banking account details id: value: view Resource: type: object description: > A resource represents an addressable feature on the platform to which access may be granted. Combined with an action, it forms an entitlement that defines the permission scope. The resource identifies the feature being accessed, and related metadata (such as identifier or owning user) provides additional context. required: - id properties: description: type: string description: Description of the resource. example: Banking account details id: type: object description: Unique identifier for the resource. allOf: - $ref: '#/components/schemas/IdType1' properties: value: example: CFcqt91mM1L5qfx4AbbpaSNIsEk1pKTgOiu4YNsleT8 productUserGuid: type: object description: Identifier of the product user to whom the resource applies. allOf: - $ref: '#/components/schemas/FICustomerId1' properties: value: example: 77b142adea5747cb90a880d225c217c6 example: description: Banking account details id: value: CFcqt91mM1L5qfx4AbbpaSNIsEk1pKTgOiu4YNsleT8 productUserGuid: value: 77b142adea5747cb90a880d225c217c6 DIAccountType2: type: string description: Specifies the type of account. enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - USER_DEFINED - RETIREMENT_IRA - TRUST example: CHECKING AccountCategory1: type: string description: > Specifies the high-level category of an account, such as deposit, loan, or investment. enum: - DEPOSIT - LOAN - INVESTMENT - TIERED_LOAN - CROSS_USER_ACCOUNT example: DEPOSIT AccountStatus2: type: string description: 'Represents the status of an account, reflecting its current state.' enum: - OPEN - CLOSED - NEGATIVE_BALANCE - DELINQUENT - IN_COLLECTION - OVER_LIMIT - WRITTEN_OFF - HAS_CREDIT_BAL - PAYMENT_COUPON - RET_PLAN - RET_PLAN_OWNED_BY_DECEASED - APPROVED - NOT_APPROVED - DELETED - VERIFIED example: OPEN OwnershipType: type: string description: Indicates the ownership relationship of the account. enum: - PRIMARY - JOINT - CROSS example: PRIMARY TransferRestriction: type: string description: > Indicates transfer restrictions applied to an account, defining whether the account can be used as a source, a destination, or excluded from all transfers. enum: - EXCLUDE_ALL - EXCLUDE_AS_FROM - EXCLUDE_AS_TO example: EXCLUDE_AS_TO IdType1: type: object description: | Base identifier object containing an identifier value. required: - value properties: value: description: Value of the identifier. type: string example: '00016' AccountId: type: object description: > Financial institution-specific account identifier. The `type` field defines the identifier scheme, and `value` contains the corresponding account identifier. required: - value properties: type: type: string description: Type of the account identifier. enum: - CBSID - BFSID - CCID - HOSTID - BPID - FWID example: HOSTID value: type: string description: Account identifier value. example: '1005834' FICustomerId1: type: object description: > Financial institution-specific customer identifier. The `type` field defines the identifier scheme, and `value` contains the corresponding identifier. required: - value properties: type: type: string description: Type of the customer identifier. enum: - GUID - BFSID - CCID - HOSTID - MEMNUMBER - LOGINID - CIF - AUTHID - EMAIL - FICUSTOMER example: GUID value: type: string description: Customer identifier value. example: 8fe733f4e27246908f92e8f7c0b96847 TransactionsResponse: type: object description: > Represents a collection of transactions returned by the service, including the transaction list for the requested account, optional pagination metadata when paging is applied, and optional supplemental information such as institution time zone details. required: - transactions properties: pagination: $ref: '#/components/schemas/Pagination' transactions: type: array description: | Transactions returned for the requested account and date range. items: $ref: '#/components/schemas/Transaction' example: - id: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '71' transactionDate: '2026-04-26' effectiveDate: '2026-04-26' description: Sample amount: currencyCode: USD amount: 0 type: RETURN_OF_GOODS isCreditTransaction: true isExportable: true isPending: false additionalInfo: type: object description: > Supplemental key‑value metadata included at the response level. When `additionalFields=true`, the service populates institution time zone information, including `timeZone` (time zone ID) and `timeZoneOffset` (GMT offset in whole hours). allOf: - $ref: '#/components/schemas/StringMap' properties: entry: items: properties: key: example: timeZone value: example: America/New_York example: - key: timeZone value: America/New_York - key: timeZoneOffset value: '-5' example: transactions: - id: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '71' transactionDate: '2026-04-26' effectiveDate: '2026-04-26' memo: Return of Goods description: Return merchandise to customer amount: currencyCode: USD amount: 6011 type: RETURN_OF_GOODS isCreditTransaction: true isExportable: true isPending: true additionalInfo: entry: - key: ofxTid value: '20260426000000[-10:HWT]*6011.00*600**Return of Goods1' - key: dcTid value: 20260426*601100*600**Return of Goods1 - key: ccTid value: 04/26/2026*6011.00*600**Return of Goods1 - id: dwLbcmXN4AZnVqN7XP-SA1eHqCeNYmT8C2yITbmRx7M institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '15' transactionDate: '2026-04-06' effectiveDate: '2026-04-06' description: Automatic Debit4 amount: currencyCode: USD amount: 220 type: AUTOMATIC_DEBIT isCreditTransaction: false isExportable: true isPending: true additionalInfo: entry: - key: ofxTid value: '20260406000000[-10:HWT]*-220.00*10**Automatic Debit4' - key: dcTid value: 20260406*-22000*10**Automatic Debit4 - key: ccTid value: 04/06/2026*220.00*10**Automatic Debit4 Transaction: type: object description: > Represents a single financial transaction for an account. Returning core transaction attributes such as identifiers, dates, descriptions, amounts, balances, and transaction type, along with status indicators. It may also include optional image metadata and supplemental key‑value information when available. required: - id - accountId - institutionId - institutionUserId - amount - type - isCreditTransaction - isExportable - isPending properties: id: type: string description: A unique identifier for the transaction. example: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 institutionId: type: string description: >- Identifier of the financial institution to which the account belongs. example: '00016' institutionUserId: type: string description: Identifier of the user associated with the transaction. example: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: type: string description: > Unique identifier for the institution customer (retail customer or business banking location) associated with the account. For Business Banking, this is the unique identifier of the location/subsidiary at the financial institution. example: 8fe733f4e27246908f92e8f7c0b96847 accountId: type: string description: Identifier of the account to which the transaction belongs. example: dwLbcmXN4AZnVqN7XP-SA1eHqCeNYmT8C2yITbmRx7M transactionNumber: type: string description: > Host or institution‑assigned transaction number from the upstream system with format defined by the source system. example: '15' hostTransactionId: type: string description: > Unique transaction identifier assigned by the host system for this transaction. example: 20220916SYSCDCDI120 transactionDate: type: string description: > Date on which the transaction activity occurred, as reported by the source system. format: date example: '2026-04-26' effectiveDate: type: string description: > Date on which the transaction effects are applied to the account balance, which may differ from the transaction date for pending or backdated items. format: date example: '2026-04-26' memo: type: string description: > Short, optional memo text associated with the transaction provided by the source system or the customer. example: Return of Goods description: type: string description: > Longer, detailed description of the transaction provided by the source system. example: Return merchandise to customer amount: type: object description: Monetary amount of the transaction. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 6011 fee: type: object description: 'Fee amount associated with the transaction, when applicable.' allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 10 amountToPrincipal: type: object description: > Portion of the transaction amount applied to reduce the outstanding principal balance, typically applicable to loan or credit accounts. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 200 amountToEscrow: type: object description: > Portion of the transaction amount applied to an escrow balance, typically used for loan-related payments such as taxes or insurance and held separately from principal and interest. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 300 amountToInterest: type: object description: > Portion of the transaction amount applied to accrued interest, typically for loan or credit account payments, representing the cost of borrowing separate from principal and escrow. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 20 unappliedFundsBalance: type: object description: > For loan accounts, represents funds received that have not yet been applied to principal, interest, or escrow as of this transaction and remain available for application towards upcoming payments. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 100 ledgerBalance: type: object description: > Account balance after the transaction is applied—representing the ledger balance for deposit accounts or the remaining principal balance for loan accounts. allOf: - $ref: '#/components/schemas/Money1' properties: currencyCode: example: USD amount: example: 1500 checkNumber: type: string description: > Check or share draft number associated with this transaction, when applicable. example: '160' micrNumber: type: string description: > Magnetic Ink Character Recognition (MICR) number associated with the transaction, typically derived from check processing. example: '206760951' type: $ref: '#/components/schemas/TransactionType' baiCode: type: string description: > Bank Administration Institute (BAI) transaction classification code provided by the host system, used to identify the transaction type under BAI cash management standards. Typically a three-digit value in the **001-999** range. example: '101' isCreditTransaction: type: boolean description: > Indicates whether the transaction is a credit (`true`) or a debit (`false`) to the account. example: true isExportable: type: boolean description: > Indicates whether the transaction is eligible for export through supported export or reporting features (for example OFX download). example: true isPending: type: boolean description: > Indicates whether the transaction is pending and has not yet been fully posted to the account. example: false transactionImage: $ref: '#/components/schemas/TransactionImage' additionalInfo: type: object description: > Supplemental key‑value metadata associated with the transaction, such as host‑specific identifiers or enrichment attributes. Returned entries are filtered at runtime based on allow‑listed configuration, and enrichment fields are included only when the request is authorized with the `transactions:read_enriched` OAuth scope. allOf: - $ref: '#/components/schemas/StringMap' properties: entry: items: properties: key: example: ofxTid value: example: '20260426000000[-10:HWT]*6011.00*600**Return of Goods1' example: - key: ofxTid value: '20260426000000[-10:HWT]*6011.00*600**Return of Goods1' - key: dcTid value: 20260426*601100*600**Return of Goods1 - key: ccTid value: 04/26/2026*6011.00*600**Return of Goods1 example: id: n9P-j1NKtrX0nh5rQWHKlaYSWbaHm7r6jmXWzAlSHc4 institutionId: '00016' institutionUserId: 40BC0EB5891C08D8E063C0A011ACE593 institutionCustomerId: 8fe733f4e27246908f92e8f7c0b96847 accountId: paGLhmRdxuDF_VkBwZvT0chXiDxJz6QubT5bViQb1u8 transactionNumber: '71' transactionDate: '2026-04-26' effectiveDate: '2026-04-26' memo: Return of Goods description: Return merchandise to customer amount: currencyCode: USD amount: 6011 type: RETURN_OF_GOODS isCreditTransaction: true isExportable: true isPending: true additionalInfo: entry: - key: ofxTid value: '20260426000000[-10:HWT]*6011.00*600**Return of Goods1' - key: dcTid value: 20260426*601100*600**Return of Goods1 - key: ccTid value: 04/26/2026*6011.00*600**Return of Goods1 TransactionType: type: string description: > Identifies the category of a financial transaction, such as a deposit, withdrawal, transfer, payment, fee, interest posting, adjustment, or refund. enum: - WITHDRAWAL - CHECK - SAVINGS_WITHDRAWAL_PASSBOOK - SAVINGS_WITHDRAWAL_OTHER - TELEPHONE_TRANSFER_DEBIT - TRANSFER_DEBIT - ADVANCE - AUTOMATIC_DEBIT - ATM_WITHDRAWAL - ELECTRONIC_TRANSFER_DEBIT - POS_PURCHASE - BILL_PAYMENT - ACH_CHECK - SERVICE_CHARGE - CHECK_BOOK_CHARGE - ATM_FEE - POS_PURCHASE_FEE - STOP_PAYMENT_FEE - INTEREST_CHARGE_NORMAL - INSUFFICIENT_FUNDS_CHARGE - RETURNED_CHECK_FEE - OVERDRAFT_FEE - EARLY_WITHDRAWAL_FEE - LEDGER_ADJUSTMENT_DEBIT - MISCELLANEOUS_DEBIT - RETAIL_PURCHASE - MAIL_ORDER_OR_TELEPHONE_PURCHASE - CASH_ADVANCE - ANNUAL_FEE - LATE_PAYMENT_FEE - INTEREST_CHARGE - DEBIT_ADJUSTMENT - DEPOSIT - TELEPHONE_TRANSFER_CREDIT - TRANSFER_CREDIT - PAYMENT - DIVIDEND - DIRECT_DEPOSIT - ATM_DEPOSIT - ELECTRONIC_TRANSFER_CREDIT - POS_CREDIT - BILL_PAYMENT_CREDIT - ACH_CREDIT - INTEREST_POSTING - LEDGER_ADJUSTMENT_CREDIT - MISCELLANEOUS_CREDIT - RETURN_OF_GOODS - REFUND - PAYMENT_CREDIT_CARD - CREDIT_ADJUSTMENT example: RETURN_OF_GOODS TransactionImage: type: object description: > Optional metadata for an image associated with a transaction. Present only when the institution provides image data and may be omitted entirely. Fields may be partially populated based on the image source and institution configuration. When available, imageType identifies the image category, imageIdentifier can be used with the Banking Images service, and hostImageLocator references the image on the core system. required: - imageType properties: imageType: $ref: '#/components/schemas/ImageType' imageIdentifier: type: string description: > Service-generated identifier for the associated image, derived from transaction attributes and host image data. Used as the client-facing key when requesting images. example: dI1CloDSI6TtmsVo2AtPvRhoLL9MPABNsVKMuGtmFdE hostImageLocator: type: string description: > Host-provided locator identifying the image on the core system. May be present even when other image fields are not populated. example: '231' example: imageType: DEPOSIT_SLIP imageIdentifier: dI1CloDSI6TtmsVo2AtPvRhoLL9MPABNsVKMuGtmFdE hostImageLocator: '231' ImageType: type: string description: > Specifies the category of the banking image, identifying whether the image represents a check, deposit slip, statement, credit card statement, or other document. enum: - UNKNOWN - CHECK - DEPOSIT_SLIP - STATEMENT - CC_STATEMENT - DOCUMENT - DEPOSIT_CHECK example: DEPOSIT_SLIP Money1: type: object description: > Represents a monetary amount of the transaction, including the currency code and the amount value. required: - currencyCode - amount properties: currencyCode: $ref: '#/components/schemas/CurrencyCode' amount: type: number description: >- Numeric value representing the monetary amount in the specified currency. format: double example: 100 example: currencyCode: USD amount: 100 Pagination: type: object description: > Pagination metadata is returned only when both $skip and $top are provided, the resolved date-range result set is non‑empty, and $skip is less than the total number of transactions. The pagination object is omitted when either parameter is missing, the result set is empty, or paging goes beyond the last row. Totals are calculated before pagination or filtering. The previous and next links are relative URLs using the effective $top value (after FI minimums are applied) and are included only when a prior or subsequent page exists. required: - count - top properties: count: type: integer format: int64 description: > Total number of transactions in the resolved date range before any pagination or filtering (`$skip`, `$top`, `$filter`, or `isCreditTransaction`) is applied. example: 36 top: type: integer format: int64 description: > Effective page size used for pagination and link generation. This reflects the `$top` value after it is raised to the institution configured minimum when the requested value is below that threshold. example: 10 previous: type: string description: > Relative URL for the previous page. Present only when `$skip` is greater than zero and a prior page exists; omitted on the first page. example: /transactions?$skip=0&$top=10 next: type: string description: > Relative URL for the next page. Omitted when no rows remain after the current page. example: /transactions?$skip=20&$top=10 example: count: 36 top: 10 previous: /transactions?$skip=0&$top=10 next: /transactions?$skip=20&$top=10 StringMap: type: object description: > Generic map of string key‑value pairs used to convey optional supplemental metadata. required: - entry properties: entry: type: array description: Ordered list of key-value entries representing the map contents. example: - key: ofxTid value: '20260420000000[-10:HWT]*-800045.67*0**' items: type: object description: One key-value pair in the map. required: - key - value example: key: ofxTid value: '20260420000000[-10:HWT]*-800045.67*0**' properties: key: type: string description: > Name of the additionalInfo entry. Keys indicate the type of supplemental metadata being provided and are evaluated against allow‑listed fields. example: ofxTid value: type: string description: > Value associated with the additionalInfo key. The value represents the supplemental metadata content for the corresponding key. example: '20260420000000[-10:HWT]*-800045.67*0**' example: entry: - key: ofxTid value: '20260420000000[-10:HWT]*-800045.67*0**' SearchCriteria: type: object description: > Request payload defining the criteria used to search banking activity records, including the required time range, optional filters, attribute selection, and pagination controls. All fields are validated against service rules and context. required: - startTime - endTime properties: startTime: type: string description: > Inclusive start of the search window, expressed as an ISO‑8601 date‑time with timezone offset. Must be strictly earlier than `endTime` and fall within the service‑configured maximum lookback period (90 days). format: date-time example: '2026-03-27T00:00:00.000Z' endTime: type: string description: > Inclusive end of the search window, expressed as an ISO‑8601 date‑time with timezone offset. Must be later than `startTime` and comply with the service’s maximum allowed time window (90 days). format: date-time example: '2026-04-27T00:00:00.000Z' pageSize: type: integer description: > Maximum number of records to return in a single page. If omitted or non‑positive, a configured default (1000) is applied. If specified, the value is capped at the service‑defined maximum (1000). format: int64 example: 100 eventIds: type: array description: > A list of event identifiers used to limit results to specific banking activity events. If this list is omitted or empty, results are not filtered by event identifier. Each identifier must be a printable ASCII string. Contact the Digital Strategy Manager (DSM) for the list of supported event identifiers. items: type: string format: ascii example: - mfaChallenge - mfaEnrollment eventType: type: string description: >- Type of activity event to return. If not specified, defaults to `user`. enum: - user - system example: user userType: type: string description: > Type of user associated with the activity. If not specified, results will include both retail and business users. enum: - retail - business example: retail userProduct: type: string description: Product identifier used to scope results to a specific user product. example: Common Mobile Services userId: type: string description: > User identifier value, interpreted according to `userIdType`. When specified, `userIdType` is required. example: testuser123 userIdType: type: string description: > Identifies how `userId` should be interpreted. Required when `userId` is provided. enum: - loginId - memberId example: loginId companyId: type: string description: > Optional company identifier used to retrieve activity records associated with a specific business. example: '3546785467' requestedAttributes: type: array description: > List of attribute names to include in each returned activity record. When omitted or empty, all eligible attributes are returned. Each event may also include attributes that are unique to that event. Each element must be a printable ASCII attribute name. The following attributes are common to every event record: `eventId`, `ReqCtx_id`, `timeStamp` For user‑context records, the following attributes are common: `channel`, `errorCode`, `errorMessage`, `glappid`, `guid`, `member`, `ReqCtx_bcIndex`, `ReqCtx_canonicalId`, `ReqCtx_companyId`, `ReqCtx_customerType`, `ReqCtx_featureName`, `ReqCtx_homeId`, `ReqCtx_ipAddress`, `ReqCtx_locale`, `ReqCtx_loginId`, `ReqCtx_onBehalfOfUser`, `ReqCtx_region`, `ReqCtx_sessionId`, `ReqCtx_userAgent`, `ReqCtx_userId`, `ReqCtx_userProduct`, `ReqCtx_userType`, `result`, `source` items: type: string format: ascii example: - channel - errorCode - errorMessage - guid - member - ReqCtx_canonicalId - ReqCtx_companyId - ReqCtx_customerType - ReqCtx_featureName - ReqCtx_ipAddress - ReqCtx_locale - ReqCtx_loginId - ReqCtx_sessionId - ReqCtx_userAgent - ReqCtx_userId - ReqCtx_userProduct - ReqCtx_userType - result - source additionalFilters: $ref: '#/components/schemas/AdditionalFilters' nextPageToken: type: string description: > Opaque token returned from a previous response used to retrieve the next page of results. Pass this value unchanged to continue a paginated query. example: >- MDAwMTZ8OTIyMzM3MDI1OTU0NDY2NjIzMXxhNGRmZmUxMy00MjVjLTExZjEtOGI0MS04MjVjZGQxMzg0ZmI example: startTime: '2026-03-27T00:00:00.000Z' endTime: '2026-04-27T00:00:00.000Z' pageSize: 100 eventIds: - login - logout eventType: user userType: business userId: exapibbprimary userIdType: loginId companyId: '3546785467' requestedAttributes: - channel - errorMessage - ReqCtx_canonicalId - ReqCtx_featureName - member - ReqCtx_loginId - ReqCtx_sessionId - source additionalFilters: condition: and filters: - attributeId: channel criteria: equals value: MOBILE - attributeId: source criteria: notEqual value: AndroidBizBankingApp nextPageToken: >- MDAwMTZ8OTIyMzM3MDI1OTU0NDY2NjIzMXxhNGRmZmUxMy00MjVjLTExZjEtOGI0MS04MjVjZGQxMzg0ZmI AdditionalFilters: type: object description: > Optional advanced filters supporting nested logical AND / OR conditions for refining search results. properties: condition: $ref: '#/components/schemas/Condition' filters: $ref: '#/components/schemas/Filters' subFilters: type: array description: > Optional nested filter groups, each with its own logical condition. Use sub-filters to combine multiple AND / OR groupings within the same search request. items: $ref: '#/components/schemas/SubFilter' example: - condition: or filters: - attributeId: ReqCtx_featureName criteria: like value: login - attributeId: ReqCtx_featureName criteria: like value: logout example: condition: and filters: - attributeId: channel criteria: equals value: MOBILE - attributeId: source criteria: notEqual value: AndroidBizBankingApp subFilters: - condition: or filters: - attributeId: ReqCtx_featureName criteria: like value: login - attributeId: ReqCtx_featureName criteria: like value: logout Condition: type: string description: Logical operator used to combine filter conditions. enum: - and - or example: and Filters: type: array description: > List of individual filter conditions applied together using the specified logical operator. items: $ref: '#/components/schemas/ServiceFilter' example: - attributeId: channel criteria: equals value: MOBILE - attributeId: source criteria: notEqual value: AndroidBizBankingApp ServiceFilter: type: object description: >- Defines a single attribute-based filter condition applied to activity records. required: - attributeId - criteria - value properties: attributeId: type: string description: Attribute name to filter on (printable ASCII). example: channel criteria: type: string default: equals description: Comparison operator used to evaluate the attribute value. enum: - equals - notEqual - like - isPresent - greaterThan - lessThan - greaterThanEqual - lessThanEqual - isNotPresent example: equals value: type: string description: > Value (printable ASCII) to compare against the attribute value. Not required for presence-based (`isPresent` / `isNotPresent`) criteria. example: MOBILE example: attributeId: channel criteria: equals value: MOBILE SubFilter: type: object description: Nested group of filter conditions combined using a logical operator. required: - filters properties: condition: $ref: '#/components/schemas/Condition' filters: $ref: '#/components/schemas/Filters' example: condition: or filters: - attributeId: ReqCtx_featureName criteria: like value: login - attributeId: ReqCtx_featureName criteria: like value: logout SearchResponse: type: object description: >- Response payload returned when matching banking activity records are found. required: - count - bankingActivities properties: nextPageToken: type: string description: > Token indicating that additional pages of results may be available. Omitted when no further pages exist. example: >- MDAwMTZ8OTIyMzM3MDI1OTUyMTk3NjkxN3w3OGMyYTdjMC00MjkxLTExZjEtYTkyZC00Mjk4NzNmY2Y2OWI count: type: integer description: Number of activity records returned in this response. format: int64 example: 100 bankingActivities: type: array description: > List of banking activity records for the current page. Each record is represented as a map of attribute names to string values and may include common attributes, user‑context attributes (when available), and any additional attributes specific to the event identifier. The following attributes are returned by default for every event record: eventId, ReqCtx_id, timeStamp For user‑context records, the following attributes are common: channel, errorCode, errorMessage, glappid, guid, member, ReqCtx_bcIndex, ReqCtx_canonicalId, ReqCtx_companyId, ReqCtx_customerType, ReqCtx_featureName, ReqCtx_homeId, ReqCtx_ipAddress, ReqCtx_locale, ReqCtx_loginId, ReqCtx_onBehalfOfUser, ReqCtx_region, ReqCtx_sessionId, ReqCtx_userAgent, ReqCtx_userId, ReqCtx_userProduct, ReqCtx_userType, result, source items: $ref: '#/components/schemas/BankingActivity' example: - reqctx_canonicalid: '00016' channel: ONLINE memo: addenda source: Web type: ACH Payment action: PAYMENT reqctx_userproduct: BBPAYMENTS payeehold: 'false' reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' reqctx_userid: db1174dac62011eeafee42010a31a08f reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20d0f4d6-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayee reqctx_customertype: BUSINESS accounttype: BUSINESS_CHECKING reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US glappid: BBP result: Success reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f nickname: id reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.331-07:00' amount: '0.01' accountnumber: '1234' payeename: rec clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 reqctx_bcindex: '16' accountnumberhashed: 03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4 routingnumber: '121000358' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 payeeid: 9c17ad77-600c-45c2-94a1-818a6060558e reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' - reqctx_canonicalid: '00016' paymentdate: 'Mon, Apr 27, 2026' fromaccounthashed: d1c6c03bf6184a1e101aaf12705405e2e92bd33d35d00a4ab9e4f3c2811b5598 fee: '9.0' channel: ONLINE source: Web type: ACH Payment payeecount: '1' action: ADD reqctx_userproduct: BBPAYMENTS reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' fromaccounttype: BUSINESS_CHECKING reqctx_userid: db1174dac62011eeafee42010a31a08f taxidname: Loc One reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20cd4b55-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayment reqctx_customertype: BUSINESS reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US transactiontype: COMMERCIAL_CCD glappid: BBP result: Success paymenttiming: ONCE reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f confno: 7RF6BSK4 reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.307-07:00' amount: '0.01' clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 fromaccount: '*2114' achcompanyid: '4534643645' reqctx_bcindex: '16' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 comment: SD_3 reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' example: nextPageToken: >- MDAwMTZ8OTIyMzM3MDI1OTUyMTk3NjkxN3w3OGMyYTdjMC00MjkxLTExZjEtYTkyZC00Mjk4NzNmY2Y2OWI count: 3 bankingActivities: - reqctx_canonicalid: '00016' channel: ONLINE memo: addenda source: Web type: ACH Payment action: PAYMENT reqctx_userproduct: BBPAYMENTS payeehold: 'false' reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' reqctx_userid: db1174dac62011eeafee42010a31a08f reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20d0f4d6-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayee reqctx_customertype: BUSINESS accounttype: BUSINESS_CHECKING reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US glappid: BBP result: Success reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f nickname: id reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.331-07:00' amount: '0.01' accountnumber: '1234' payeename: rec clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 reqctx_bcindex: '16' accountnumberhashed: 03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4 routingnumber: '121000358' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 payeeid: 9c17ad77-600c-45c2-94a1-818a6060558e reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' - reqctx_canonicalid: '00016' paymentdate: 'Mon, Apr 27, 2026' fromaccounthashed: d1c6c03bf6184a1e101aaf12705405e2e92bd33d35d00a4ab9e4f3c2811b5598 fee: '9.0' channel: ONLINE source: Web type: ACH Payment payeecount: '1' action: ADD reqctx_userproduct: BBPAYMENTS reqctx_featurename: ACH reqctx_id: 60a8ec52-1f15-4287-89d4-c27f2a991bf7 eventdate: '2026-04-27' fromaccounttype: BUSINESS_CHECKING reqctx_userid: db1174dac62011eeafee42010a31a08f taxidname: Loc One reqctx_companyid: '2672337892' businessname: BBP Automation Company - Do not delete guid: 20cd4b55-4295-11f1-b085-3af8cb3ae469 eventtype: Audit reqctx_hostname: bbp-qal1-5fb5c95ccc-xdmvq reqctx_region: qa reqctx_ipaddress: 127.0.0.1 eventid: managePayment reqctx_customertype: BUSINESS reqctx_bcid: '00016' trnuid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_locale: en_US transactiontype: COMMERCIAL_CCD glappid: BBP result: Success paymenttiming: ONCE reqctx_appid: ServicesGatewayApp reqctx_offeringid: USPServer member: db1174dac62011eeafee42010a31a08f confno: 7RF6BSK4 reqctx_timezone: America/Los_Angeles timestamp: '2026-04-27T16:59:29.307-07:00' amount: '0.01' clientversion: 4.0.10 reqctx_usertype: PRIMARY_ADMIN reqctx_tzoffset: '+0000' reqctx_userproductversion: 5.6.0 reqctx_transid: c550e280-88ee-47e8-bfc1-2c219f895eaa reqctx_loginid: bbpautouser_2672337892 fromaccount: '*2114' achcompanyid: '4534643645' reqctx_bcindex: '16' paymentid: 1d9247b0-84ce-4310-aced-9086b3d7c533 reqctx_useragent: PostmanRuntime/7.53.0 comment: SD_3 reqctx_onbehalfof: '00016' reqctx_sessionid: db1174dac62011eeafee42010a31a08f reqctx_homeid: '00016' - reqctx_canonicalid: '00016' reqctx_ipaddress: 100.68.131.161 eventid: alertSent reqctx_customertype: BUSINESS reqctx_callinghost: 100.68.131.161 accounttype: ACCOUNT channel: EMAIL reqctx_bcid: '00016' type: BBPTRNSAPRVNT layoutid: '34211' reqctx_locale: en_US glappid: MAI result: Success reqctx_appid: BBPaymentsApp reqctx_offeringid: BBPaymentsApp reqctx_request_userid: c1d214fd101711ea92b6005056a0456e member: c1d214fd101711ea92b6005056a0456e subscriptionid: NA email: chaitra.m@ncr.com timestamp: '2026-04-27T16:59:28.591-07:00' accountnumber: NA clientversion: 4.0.5 reqctx_usertype: PRIMARY reqctx_userproduct: BBPaymentsApp reqctx_featurename: Events reqctx_id: b0955235-da74-490c-aa40-15551da2547b reqctx_transid: b0955235-da74-490c-aa40-15551da2547b reqctx_loginid: chaitrabu eventdate: '2026-04-27' reqctx_userid: c1d214fd101711ea92b6005056a0456e reqctx_bcindex: '16' accountnumberhashed: 20ef0f0c8d0eea98772412cea9b3b92612e3e53cb5e59152b5703165f56e8a53 guid: 20600d88-4295-11f1-b264-f6df74297e1a reqctx_useragent: Apache-HttpClient/5.4.4 (Java/17.0.4.1) eventtype: Audit reqctx_region: qa reqctx_requesturi: >- /mais/v1/fis/00016/fiCustomers/c1d214fd101711ea92b6005056a0456e/events reqctx_onbehalfof: '00016' reqctx_sessionid: '0' reqctx_homeid: '00016' reqctx_request_fiid: '00016' BankingActivity: type: object additionalProperties: type: string BankingImages: type: object description: > Represents a collection of banking image records returned by the service, along with any warnings generated during request processing. required: - bankingImage properties: bankingImage: type: array description: > Banking image metadata records matching the request criteria. Each item describes one available image and how to retrieve it. items: $ref: '#/components/schemas/BankingImage' example: - id: '232' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT warnings: type: array description: | Non-fatal warnings produced during request processing. items: $ref: '#/components/schemas/Warning' example: - code: BIS_20007 message: Error interacting with FICDS Statement Image service. example: bankingImage: - id: '232' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT BankingImage: type: object description: > Represents a scanned banking document, such as a check, deposit slip, or statement, associated with a specific customer and account. The BankingImage object includes identifying metadata and may contain one or more encoded image representations used to view, download, or print the document. required: - id - institutionCustomerId - institutionId - accountId - imageType properties: id: type: string description: A unique identifier for the banking image. example: '232' institutionCustomerId: type: string description: > Unique identifier for the institution customer (retail customer or business banking location) associated with the account. For Business Banking, this is the unique identifier of the location/subsidiary at the financial institution. example: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: type: string description: >- Identifier of the financial institution to which the account belongs. example: 04887 accountId: type: string description: Identifier of the account to which the image belongs. example: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI accountNumber: type: string description: > The account number associated with the banking image, when applicable (for example, for deposited checks). example: '2300000001' accountType: type: string description: | The type of account associated with the banking image. enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - TRUST - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - USER_DEFINED - RETIREMENT_IRA example: CHECKING imageType: $ref: '#/components/schemas/ImageType1' imageInfoItems: $ref: '#/components/schemas/ImageInfoItems' transactionImageNumber: type: string description: > The reference number of the transaction associated with the image, such as a check number or deposit slip number. This is only applicable for transaction-based images. example: '2301' transactionDate: type: string format: date description: > The date of the transaction shown in the image. This is only applicable for transaction-based images. example: '2021-01-01' transactionDescription: type: string description: > A descriptive summary of the transaction shown in the image. This is only applicable for transaction-based images. example: Rent payment transactionStatus: $ref: '#/components/schemas/TransactionStatus' amount: $ref: '#/components/schemas/Money2' statementDescription: type: string description: > A descriptive summary of the statement. This is only applicable for statement-based images. example: Checking Account Statement statementDate: type: string format: date description: > The date on which the statement was generated. This is only applicable for statement-based images. example: '2026-04-01' example: transactionImageNumber: '2301' transactionDate: '2021-01-01' amount: currencyCode: USD amount: 0.11 id: '232' institutionCustomerId: 489ee99dbb284f9fa7b2786d48cd61e0 institutionId: 04887 accountId: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI accountNumber: '2300000001' accountType: CHECKING imageType: CHECK imageInfoItems: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT - data: aW1hZ2UgY2hlY2sgYmFjayAyMzAxIGpwZWc= type: JPEG view: BACK ImageType1: type: string description: > Specifies the category of the banking image, identifying whether the image represents a check, deposit slip, statement, credit card statement, or other document. enum: - UNKNOWN - CHECK - DEPOSIT_SLIP - STATEMENT - CC_STATEMENT - DOCUMENT - DEPOSIT_CHECK example: CHECK ImageInfoItems: type: object description: > Represents a collection of image representations for a banking document, such as multiple pages or different views (for example, front and back). required: - imageInfo properties: imageInfo: type: array description: Ordered list of image representations for the banking document. items: $ref: '#/components/schemas/ImageInfo' example: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT example: imageInfo: - data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT ImageInfo: type: object description: > Contains the image data and metadata for a single representation of a banking document, such as the front or back of a check, or a page within a multi-page statement. required: - data - type properties: data: type: string description: The byte array that holds the base64 encoded data for the image. format: byte example: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: $ref: '#/components/schemas/ImageInfoType' view: $ref: '#/components/schemas/ImageView' pageNumber: type: integer description: >- The page number of the image when the document consists of multiple pages. format: int64 example: 1 example: data: aW1hZ2UgY2hlY2sgZnJvbnQgMjMwMSBqcGVn type: JPEG view: FRONT ImageInfoType: type: string description: > Specifies the file format of the image returned, which determines how the image can be displayed or downloaded (for example, PDF, PNG, or JPEG). enum: - UNKNOWN - PNG - JPEG - PDF example: JPEG ImageView: type: string description: > Specifies which side of the document the image represents (for example, front, back, front and back, or both separated views). enum: - UNKNOWN - FRONT - BACK - FRONT_BACK - BOTH_SEPARATED example: FRONT TransactionStatus: type: string description: > Status of the transaction associated with the image, such as accepted or held for review. This is only applicable for transaction-based images. enum: - ACCEPTED - HELD_FOR_REVIEW example: ACCEPTED Money2: type: object description: > The monetary amount of the transaction shown in the image. This is only applicable for transaction-based images. required: - currencyCode - amount properties: currencyCode: $ref: '#/components/schemas/CurrencyCode' amount: type: number description: >- Numeric value representing the monetary amount in the specified currency. format: double example: 100 example: currencyCode: USD amount: 100 Warning: type: object description: >- Represents a non-fatal condition or informational message returned by the API required: - code - message properties: code: type: string description: Application-specific warning code. example: BIS_20007 message: type: string description: Detailed description of the warning. example: Error interacting with FICDS Statement Image service. example: code: BIS_20007 message: Error interacting with FICDS Statement Image service. BbRegistration: description: > Business Banking Registration object containing all registration details including business information, users, TINs, addresses, and features example: additionalServices: - Positive Pay - Account Reconciliation approvedDate: '11/20/2025 10:33:25 AM PST' businessId: '8899987654' businessName: Acme Corporation completedDate: '11/20/2025 10:33:25 AM PST' confirmationNumber: FSUU58FY7X6N95TO contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 createdUser: system declinedDate: '11/20/2025 10:33:25 AM PST' id: 0b0ef3b4376b400786738400c03ffd0f institutionId: '04715' message: Registration created successfully onlineFeatures: - ACH - Wire Transfer - Bill Pay registrationDate: '11/20/2025 10:33:25 AM PST' status: PENDING tins: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' users: - email: jane.doe@acme.com firstName: Jane lastName: Doe phoneNumber: 415-555-5678 role: PRIMARY_ADMIN properties: additionalServices: description: > List of additional services requested for the registration. These are supplementary banking services beyond basic online features, such as Positive Pay, Account Reconciliation, Remote Deposit Capture, etc. example: - Positive Pay - Account Reconciliation items: description: > List of additional services requested for the registration. These are supplementary banking services beyond basic online features, such as Positive Pay, Account Reconciliation, Remote Deposit Capture, etc. example: '["Positive Pay","Account Reconciliation"]' type: string type: array approvedDate: description: Date when the registration was approved (in FI timezone) example: '11/20/2025 10:33:25 AM PST' readOnly: true type: string businessId: description: Business ID assigned after registration approval example: '8899987654' readOnly: true type: string businessName: description: Name of the business being registered example: Acme Corporation maxLength: 100 type: string completedDate: description: Date when the registration was completed (in FI timezone) example: '11/20/2025 10:33:25 AM PST' readOnly: true type: string confirmationNumber: description: Unique confirmation number for the registration example: FSUU58FY7X6N95TO readOnly: true type: string contact: $ref: '#/components/schemas/BusinessContact' description: Primary business contact information example: address: address1: 123 Main Street address2: Suite 400 city: San Francisco country: USA state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 createdUser: description: User who created the registration example: system readOnly: true type: string declinedDate: description: Date when the registration was declined (in FI timezone) example: '11/20/2025 10:33:25 AM PST' readOnly: true type: string id: description: Unique identifier for the registration example: 0b0ef3b4376b400786738400c03ffd0f readOnly: true type: string institutionId: description: Unique identifier for the Institution example: '04715' readOnly: true type: string message: description: Message to denote the status of registration creation example: Registration created successfully readOnly: true type: string onlineFeatures: description: List of online features requested for the registration example: - ACH - Wire Transfer - Bill Pay items: description: List of online features requested for the registration example: '["ACH","Wire Transfer","Bill Pay"]' type: string type: array registrationDate: description: Date when the registration was created (in FI timezone) example: '11/20/2025 10:33:25 AM PST' readOnly: true type: string status: $ref: '#/components/schemas/BbRegistrationStatus' description: Current status of the registration example: PENDING tins: description: List of Tax Identification Numbers (TINs) for the registration example: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' items: $ref: '#/components/schemas/BusinessTinInfo' type: array users: description: List of administrator users associated with the registration example: - email: jane.doe@acme.com firstName: Jane lastName: Doe userType: PRIMARY_ADMIN items: $ref: '#/components/schemas/BbRegistrationUser' type: array required: - businessName type: object BbRegistrationStatus: description: Status of a business banking registration enum: - PENDING - APPROVED - DECLINED - COMPLETED example: PENDING type: string BbRegistrationUser: description: > User information for business banking registration including contact details and user type example: email: john.smith@example.com firstName: John lastName: Smith middleName: Michael phoneNumber: 415-555-1234 userType: PRIMARY_ADMIN properties: email: description: Email address of the user example: john.smith@example.com format: email type: string firstName: description: First name of the user example: John maxLength: 50 type: string lastName: description: Last name of the user example: Smith maxLength: 50 type: string middleName: description: Middle name of the user example: Michael maxLength: 50 type: string phoneNumber: description: Phone number of the user example: 415-555-1234 pattern: '^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$' type: string userType: $ref: '#/components/schemas/BbRegistrationUserType' description: Type of user in the registration example: PRIMARY_ADMIN required: - email - firstName - lastName type: object BbRegistrationUserType: description: Type of user in a business banking registration enum: - PRIMARY_BUSINESS_CONTACT - PRIMARY_ADMIN - SECONDARY_ADMIN example: PRIMARY_ADMIN type: string BusinessAddress: description: Business address information for a business banking registration example: address1: 123 Main Street address2: Suite 400 city: San Francisco country: USA state: CA zipCode: '94105' properties: address1: description: Primary street address example: Main Street maxLength: 100 type: string address2: description: 'Secondary address line (suite, floor, building, etc.)' example: Suite 400 maxLength: 100 type: string city: description: City name example: San Francisco maxLength: 50 type: string country: description: Country code defaulted to USA example: USA type: string state: description: State or province code (2-letter abbreviation for US states) example: CA maxLength: 2 minLength: 2 type: string zipCode: description: ZIP or postal code example: '94105' maxLength: 20 type: string required: - address1 - city - state - zipCode type: object BusinessContact: description: > Primary contact information for a business including name, phone number, email address, and Address example: address: address1: 123 Main Street address2: Suite 400 city: San Francisco country: USA state: CA zipCode: '94105' email: john.smith@example.com firstName: John lastName: Smith middleName: Michael phoneNumber: 415-555-1234 properties: address: $ref: '#/components/schemas/BusinessAddress' description: Business address for the registration example: address1: 123 Main Street address2: Suite 400 city: San Francisco country: USA state: CA zipCode: '94105' email: description: Email address of the user example: john.smith@example.com format: email type: string firstName: description: First name of the user example: John maxLength: 50 type: string lastName: description: Last name of the user example: Smith maxLength: 50 type: string middleName: description: Middle name of the user example: Michael maxLength: 50 type: string phoneNumber: description: Phone number of the user example: 415-555-1234 pattern: '^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$' type: string type: object BusinessDetails: description: > Comprehensive business details object containing company information, address, contact, billing, TIN, and customer details example: additionalInfo: employeeCount: '500' industry: Technology yearEstablished: '2010' billingAccountNumber: '123456789' billingMiscellaneous: Monthly billing cycle businessId: BUS123456 businessName: Acme Corporation contact: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 institutionId: '04715' status: ACTIVE tins: - memberNumber: '9749374838' primary: true tinName: Acme tinNumber: '123456789' users: - contactMethods: - contactInfo: john.smith@acme.com enrolledDateTime: '2024-01-15T10:30:00Z' protocol: EMAIL telephoneCountryCode: '+1' email: john.smith@acme.com firstName: John lastName: Smith loginId: jsmith@acme.com middleName: Michael role: PRIMARY_ADMIN status: ACTIVE updatePending: false properties: additionalInfo: additionalProperties: description: > Additional information stored as key-value pairs. Contains custom metadata about the business. example: >- {"legacyUserId":"e0b4ea3b9f7711ea906b005056a0223c","userPreferredName":"Mark Smith"} type: string description: > Additional information stored as key-value pairs. Contains custom metadata about the business. example: legacyUserId: e0b4ea3b9f7711ea906b005056a0223c userPreferredName: Mark Smith type: object billingAccountNumber: description: The billing account number associated with the business example: '123456789' maxLength: 50 type: string billingMiscellaneous: description: Additional miscellaneous billing information or notes example: Monthly billing cycle maxLength: 255 type: string businessId: description: The unique identifier of the business/company example: BUS123456 maxLength: 50 type: string businessName: description: The registered name of the business example: Acme Corporation maxLength: 100 type: string contact: $ref: '#/components/schemas/BusinessContact' description: Primary contact information for the business example: address: address1: 123 Main Street address2: Suite 400 city: San Francisco state: CA zipCode: '94105' email: john.smith@acme.com firstName: John lastName: Smith phoneNumber: 415-555-1234 institutionId: description: The unique identifier of the Financial Institution example: '04715' maxLength: 5 minLength: 5 pattern: '^[0-9A-Za-z]{5}$' type: string status: description: Current status of the business account enum: - ACTIVE - INACTIVE example: ACTIVE type: string tins: description: > List of Tax Identification Number (TIN) details associated with the business locations example: - memberNumber: '9749374838' primary: true tinName: Acme Corp tinNumber: '123456789' items: $ref: '#/components/schemas/BusinessTinInfo' type: array users: description: > List of business users/customers associated with the business. Each user includes personal information, role, status, and contact methods. example: - email: john.smith@acme.com firstName: John lastName: Smith role: PRIMARY_ADMIN status: ACTIVE items: $ref: '#/components/schemas/BusinessUser' type: array required: - businessId - businessName - contact - institutionId - status type: object BusinessRegistrationConfig: description: > Configuration settings for business banking registration, including available online features and additional services that can be selected during the registration process example: additionalServices: - Positive Pay - Account Reconciliation - Lockbox Services - Merchant Services onlineFeatures: - ACH - Wire Transfer - Bill Pay - Remote Deposit Capture properties: additionalServices: description: > List of additional services available for selection during registration. These are supplementary services beyond core online banking features. example: - Positive Pay - Account Reconciliation - Lockbox Services - Merchant Services items: description: > List of additional services available for selection during registration. These are supplementary services beyond core online banking features. example: >- ["Positive Pay","Account Reconciliation","Lockbox Services","Merchant Services"] type: string type: array onlineFeatures: description: > List of online banking features available for selection during registration. Common features include ACH, Wire Transfer, Bill Pay, Positive Pay, etc. example: - ACH - Wire Transfer - Bill Pay - Remote Deposit Capture items: description: > List of online banking features available for selection during registration. Common features include ACH, Wire Transfer, Bill Pay, Positive Pay, etc. example: '["ACH","Wire Transfer","Bill Pay","Remote Deposit Capture"]' type: string type: array required: - onlineFeatures type: object BusinessTinInfo: description: > Tax Identification Number (TIN) information for a business banking registration including TIN number, name, member number, and primary indicator example: memberNumber: '7888001234' primary: true tinName: Acme Corporation - Main Office tinNumber: '123456789' properties: hostPassword: description: Host system password for authentication (encrypted) example: '********' type: string writeOnly: true memberNumber: description: Member number associated with this TIN at the financial institution example: '7888001234' maxLength: 32 type: string primary: description: Indicates if this is the primary TIN for the business example: true type: boolean tinName: description: Name associated with the TIN (business name or DBA) example: Acme Corporation - Main Office maxLength: 65 type: string tinNumber: description: Tax Identification Number (9-digit EIN or SSN) example: '123456789' maxLength: 16 pattern: '^\d{9}$' type: string required: - tinName - tinNumber type: object BusinessUser: description: > Business user details including personal information, role, status, and contact methods example: contactMethods: - contactInfo: john.smith@acme.com enrolledDateTime: '2024-01-15T10:30:00Z' protocol: EMAIL telephoneCountryCode: '+1' email: john.smith@acme.com firstName: John lastName: Smith loginId: jsmith@acme.com middleName: Michael role: PRIMARY_ADMIN status: ACTIVE updatePending: false properties: contactMethods: description: > List of contact methods associated with the user (phone, email, SMS, etc.) example: - contactInfo: john.smith@acme.com protocol: EMAIL - contactInfo: '+14155551234' protocol: SMS items: $ref: '#/components/schemas/ContactMethod2' type: array email: description: Primary email address of the business user example: john.smith@acme.com format: email maxLength: 100 type: string firstName: description: First name of the business user example: John maxLength: 50 type: string lastName: description: Last name of the business user example: Smith maxLength: 50 type: string loginId: description: > Login identifier used for authentication. Typically the user's email address. example: jsmith@acme.com maxLength: 100 type: string middleName: description: Middle name of the business user example: Michael maxLength: 50 type: string role: description: Role of the user within the business organization enum: - PRIMARY_ADMIN - SECONDARY_ADMIN - BUSINESS_USER example: PRIMARY_ADMIN type: string status: description: Current status of the business user account example: Active type: string updatePending: description: > Indicates if there are pending updates for this user that require approval example: false type: boolean required: - email - firstName - lastName - role - status type: object ContactMethod2: description: > Contact method details for a business user, including protocol type and contact information example: contactInfo: john.smith@acme.com enrolledDateTime: '2024-01-15T10:30:00Z' protocol: EMAIL telephoneCountryCode: '+1' properties: contactInfo: description: | The actual contact information (phone number, email address, etc.) example: john.smith@acme.com maxLength: 100 type: string enrolledDateTime: description: Date and time when this contact method was enrolled/registered example: '2024-01-15T10:30:00Z' format: date-time type: string protocol: $ref: '#/components/schemas/Protocol' description: The communication protocol type for this contact method telephoneCountryCode: description: 'Country code for telephone numbers (e.g., +1 for US)' example: '+1' maxLength: 5 type: string required: - contactInfo - protocol type: object Protocol: description: Communication protocol type for contact methods enum: - VOICE - TEXT - SMS - EMAIL example: EMAIL type: string AccountEntitledFeature: description: > Represents account-level entitled features associated with Tax Identification Numbers (TINs). This object encapsulates the relationship between business locations (identified by TINs) and their entitled bank accounts with specific feature access permissions. example: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections featureLimits: - featureName: ACH Payments limits: dailyLimits: 200000 perTransactionLimits: 50000 memberNumber: '7838939999' tinNumber: '123456789' properties: entitledTins: description: > List of entitled TINs with their associated bank accounts and feature permissions. Each TIN represents a business location with its own set of entitled accounts. example: - bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections featureLimits: - featureName: ACH Payments limits: dailyLimits: 200000 perTransactionLimits: 50000 memberNumber: '7838939999' tinNumber: '123456789' items: $ref: '#/components/schemas/EntitledTins' type: array readOnly: true required: - entitledTins title: Account Entitled Feature type: object BankAccount: description: > Represents a bank account with its account number and associated features properties: accountNumber: description: The bank account number example: '123456789' type: string features: description: List of features or entitlements enabled for this bank account example: - ACH Payments - ACH Collections items: description: List of features or entitlements enabled for this bank account example: '["ACH Payments","ACH Collections"]' type: string type: array type: object BusinessEntitlementsLimits: description: > Represents the entitlements and associated limits for a business. Contains feature-level entitlements with transaction limits and account-level entitlements organized by business TINs. example: accountEntitledFeature: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections memberNumber: '7838939999' tinNumber: '732832880' entitledFeatures: - featureName: ACH Payments limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionLimits: 1000000 - featureName: ACH Collections limits: dailyLimits: 1000000 perTransactionLimits: 1000000 - featureName: Wires - Domestic limits: dailyLimits: 1000000 perTransactionLimits: 1000000 secCodes: - ACH Payments Consumer (PPD) - ACH Payments Commercial (CCD) properties: accountEntitledFeature: $ref: '#/components/schemas/AccountEntitledFeature' description: > Account-level entitled features organized by business location, including TIN numbers and associated bank accounts example: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections memberNumber: '7838939999' tinNumber: '732832880' readOnly: true entitledFeatures: description: > List of entitled features with their associated transaction limits for the business example: - featureName: ACH Payments limits: dailyLimits: 1000000 perTransactionLimits: 10000 items: $ref: '#/components/schemas/EntitledFeature' type: array secCodes: description: List of SEC codes available for ACH transactions example: - ACH Payments Consumer (PPD) - ACH Payments Commercial (CCD) items: description: List of SEC codes available for ACH transactions example: '["ACH Payments Consumer (PPD)","ACH Payments Commercial (CCD)"]' type: string type: array readOnly: true required: - entitledFeatures title: BusinessEntitlementsLimits type: object EntitledFeature: description: Represents an entitled feature with its associated limits example: featureName: ACH Payments limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionLimits: 1000000 properties: featureName: description: Name of the entitled feature example: ACH Payments type: string limits: $ref: '#/components/schemas/FeatureLimits' description: Transaction limits associated with the feature example: dailyLimits: 50000 monthlyLimits: 500000 perTransactionLimits: 10000 readOnly: true required: - featureName type: object EntitledTins: description: > Represents Entitled TINs with its associated TIN, member number, and bank accounts example: bankAccounts: - accountNumber: '323828838' features: - ACH Payments - ACH Collections featureLimits: - featureName: ACH Payments limits: dailyLimits: 200000 perTransactionLimits: 50000 memberNumber: '7838939999' tinNumber: '123456789' properties: bankAccounts: description: List of bank accounts associated with this business location example: - accountNumber: '323828838' features: - ACH Payments - ACH Collections items: $ref: '#/components/schemas/BankAccount' type: array featureLimits: description: > List of entitled features with their associated transaction limits for the business at tin level example: - featureName: ACH Payments limits: dailyLimits: 200000 perTransactionLimits: 50000 items: $ref: '#/components/schemas/EntitledFeature' type: array memberNumber: description: Member number associated with the business location example: '874387789' type: string tinNumber: description: Tax Identification Number (TIN) of the business location example: '123456789' type: string required: - bankAccounts - tinNumber type: object FeatureLimits: description: Represents the transaction limits associated with a feature example: dailyLimits: 50000 dailyOverallAchLimits: 100000 dailyOverallWiresLimits: 100000 monthlyLimits: 500000 perTransactionApprovalThresholdLimits: 500 perTransactionLimits: 10000 properties: dailyLimits: description: Maximum cumulative limit allowed per day example: 50000 type: number dailyOverallAchLimits: description: Maximum cumulative limit for all ACH types allowed per day example: 100000 type: number dailyOverallWiresLimits: description: Maximum cumulative limit for all wire types allowed per day example: 100000 type: number monthlyLimits: description: Maximum cumulative limit allowed per month example: 500000 type: number perTransactionApprovalThresholdLimits: description: Limit per transaction above which approval is required example: 500 type: number perTransactionLimits: description: Maximum limit allowed per single transaction example: 10000 type: number readOnly: true required: - perTransactionLimits title: FeatureLimits type: object UserEntitlementsLimits: description: > Represents the entitlements and associated limits for a user. Contains feature-level entitlements with transaction limits and account-level entitlements organized by business location. example: accountEntitledFeature: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - Create Ad Hoc ACH Collections - Create ACH Collections using Templates - Approve ACH Collections - Create Ad Hoc ACH Payments - Create ACH Payments using Templates - Approve ACH Payments - Create ACH File Pass-Through - Approve ACH File Pass-Through memberNumber: '4738374839' tinNumber: '123456789' entitledFeatures: - featureName: Approve ACH Payments limits: perTransactionLimits: 1000000 - featureName: Create Ad Hoc ACH Collections limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH Collections using Templates limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Approve ACH Collections limits: perTransactionLimits: 1000000 - featureName: Approve ACH Templates - featureName: Manage ACH Templates - featureName: Create Ad Hoc ACH Payments limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH Payments using Templates limits: dailyLimits: 1000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 1000000 - featureName: Create ACH File Pass-Through limits: dailyLimits: 3000000 monthlyLimits: 500000000001.89 perTransactionApprovalThresholdLimits: 1 perTransactionLimits: 3000000 - featureName: Approve ACH File Pass-Through limits: perTransactionLimits: 1 - featureName: Manage ACH Blocks and Filters - featureName: Decision ACH Positive Pay Exceptions - featureName: ACH File Import - Manage Import File Definitions - featureName: ACH File Import - Import Recipient Information - featureName: Bill Pay secCodes: - ACH Payments Consumer (PPD) - ACH Payments Payroll (PPD) - ACH Payments Commercial (CCD) - ACH Collections Consumer (PPD) - ACH Collections Commercial (CCD) properties: accountEntitledFeature: $ref: '#/components/schemas/AccountEntitledFeature' description: > Account-level entitled features organized by business location, including TIN numbers and associated bank accounts example: entitledTins: - bankAccounts: - accountNumber: '323828838' features: - Create Ad Hoc ACH Collections - Approve ACH Payments memberNumber: '4738374839' tinNumber: '123456789' readOnly: true entitledFeatures: description: > List of entitled features with their associated transaction limits for the user example: - featureName: Approve ACH Payments limits: perTransactionLimits: 1000000 items: $ref: '#/components/schemas/EntitledFeature' type: array secCodes: description: List of SEC codes available for ACH transactions example: - ACH Payments Consumer (PPD) - ACH Collections Commercial (CCD) items: description: List of SEC codes available for ACH transactions example: '["ACH Payments Consumer (PPD)","ACH Collections Commercial (CCD)"]' type: string type: array required: - entitledFeatures type: object AchPayment: type: object description: >- ACH Payment or ACH Collection for POST, POST 201, and GET (list or by id). required: - paymentDescription - paymentType - transactionType - tinNumber - accountNumber - deliveryDate - achCompanyId - achSecCode - achTransactions properties: id: type: string description: Unique payment identifier example: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 institutionId: type: string description: Institution identifier example: '45678' paymentName: type: string description: > Optional display name for the payment. If omitted, the API uses the recipient name (e.g. **beneficiaryName** for wires, or the ACH contact/recipient name as applicable). example: Vendor Payroll Batch paymentDescription: type: string description: Description of the payment example: Weekly payroll run paymentType: type: string description: >- Type of payment. Allowed values: ACH_COLLECTION, ACH_PAYMENT, WIRE_DOMESTIC, WIRE_INTERNATIONAL. enum: - ACH_COLLECTION - ACH_PAYMENT - WIRE_DOMESTIC - WIRE_INTERNATIONAL example: ACH_PAYMENT transactionType: type: string description: 'Transaction type. Allowed values: CREDIT, DEBIT.' enum: - CREDIT - DEBIT example: DEBIT deliveryDate: type: string description: Scheduled delivery date (YYYY-MM-DD) example: '2025-03-01' accountNumber: type: string description: Account number example: '1234567890' tinNumber: type: string description: Tax identification number example: '123456789' status: type: string description: >- Payment status. Allowed values: PENDING_COMPANY_APPROVAL, SCHEDULED, COMPANY_DECLINED, PENDING_FI_APPROVAL, FI_APPROVED, FI_DECLINED, SEND_TO_PROCESSOR, SEND_TO_PROCESSOR_FAILED, PROCESSOR_ACCEPTED, PROCESSOR_REJECTED, PROCESSOR_CANCELLED, PROCESSED, CANCELLED, FAILED, COMPANY_APPROVED, PREFUNDING_PENDING, PREFUNDING_FAILED, EXPIRED_REVERSAL, RECURRING_PAYMENT_CREATE_FAILED, PARTIALLY_PROCESSED, DRAFT. enum: - PENDING_COMPANY_APPROVAL - SCHEDULED - COMPANY_DECLINED - PENDING_FI_APPROVAL - FI_APPROVED - FI_DECLINED - SEND_TO_PROCESSOR - SEND_TO_PROCESSOR_FAILED - PROCESSOR_ACCEPTED - PROCESSOR_REJECTED - PROCESSOR_CANCELLED - PROCESSED - CANCELLED - FAILED - COMPANY_APPROVED - PREFUNDING_PENDING - PREFUNDING_FAILED - EXPIRED_REVERSAL - RECURRING_PAYMENT_CREATE_FAILED - PARTIALLY_PROCESSED - DRAFT example: SCHEDULED confirmationNumber: type: string description: Confirmation number for the payment example: Z5B2U1SP totalAmount: type: number format: double description: Total amount example: 600.25 numberOfPayments: type: integer format: int32 description: Number of payments in the batch example: 1 achCompanyId: type: string description: ACH company identifier example: '1815477800' achCompanyName: type: string description: ACH company name example: Acme Corp achSecCode: type: string description: | ACH SEC code. Allowed values (case-insensitive; use uppercase): **COMMERCIAL_CCD** (CCD, ACH_PAYMENT and ACH_COLLECTION), **CONSUMER_PPD** (PPD, both payment types), **PAYROLL_PPD** (PPD payroll; ACH_PAYMENT debit only), **CHILD_SUPPORT_CCD** (CCD child support; ACH_PAYMENT debit only). enum: - COMMERCIAL_CCD - CONSUMER_PPD - PAYROLL_PPD - CHILD_SUPPORT_CCD example: COMMERCIAL_CCD sameDayAch: type: boolean default: false description: Whether same-day ACH is requested (optional; defaults to false) example: false batchOffset: type: boolean default: false description: Batch offset flag (optional; defaults to false) example: false achTransactions: type: array description: List of ACH transactions items: $ref: '#/components/schemas/AchTransaction' example: - id: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 AchTransaction: type: object description: A single ACH transaction within a payment required: - amount - currencyCode - contactAccountType - contactBankAchRoutingNumber - contactAccountNumber - contactName properties: id: type: string format: uuid description: Transaction identifier example: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: type: number format: double description: Transaction amount example: 600 transactionPrice: type: number format: double description: Price per transaction example: 0.25 currencyCode: $ref: '#/components/schemas/CurrencyCode1' paymentId: type: string description: Parent payment identifier example: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 contactName: type: string description: Contact name example: John Doe contactBankName: type: string description: Contact bank name example: First National Bank contactAccountNumber: type: string description: Contact account number example: '9876543210' contactAccountType: type: string description: > Contact (recipient) account type. Allowed values (must match exactly): **PERSONAL_CHECKING**, **PERSONAL_SAVINGS**, **BUSINESS_CHECKING**, **BUSINESS_SAVINGS**, **BUSINESS_LOAN**. enum: - PERSONAL_CHECKING - PERSONAL_SAVINGS - BUSINESS_CHECKING - BUSINESS_SAVINGS - BUSINESS_LOAN example: BUSINESS_CHECKING contactBankAchRoutingNumber: type: string description: Contact bank ACH routing number example: '021000021' contactIdentifier: type: string description: Contact identifier example: ID-001 addenda: type: string description: Optional addenda information example: '' example: id: 390cd938-ea9f-4acd-b83a-cb1443c30175 amount: 600 transactionPrice: 0.25 currencyCode: USD contactName: John Doe contactBankName: First National Bank contactAccountNumber: '9876543210' contactAccountType: BUSINESS_CHECKING contactBankAchRoutingNumber: '021000021' contactIdentifier: ID-001 addenda: '' CountryName: type: string description: > Allowed values for **`address.country`** on **POST** (and nested **Address**): use the **enum** below — **full country names only** (e.g. **United States**, **Germany**). Do not send two-letter ISO codes. example: United States enum: - Andorra - United Arab Emirates - Afghanistan - Antigua and Barbuda - Anguilla - Albania - Armenia - Netherlands Antilles - Angola - Antarctica - Argentina - American Samoa - Austria - Australia - Aruba - Azerbaijan - Bosnia and Herzegovina - Barbados - Bangladesh - Belgium - Burkina Faso - Bulgaria - Bahrain - Burundi - Benin - Bermuda - Brunei Darussalam - Bolivia - 'Bonaire, Sint Eustatius and Saba' - Brazil - Bahamas - Bhutan - Bouvet Island - Botswana - Belarus - Belize - Canada - Cocos Islands - Democratic Republic of the Congo - Central African Republic - Congo - Switzerland - Cote D'Ivoire - Cook Islands - Chile - Cameroon - China - Colombia - Costa Rica - Serbia and Montenegro - Cuba - Cape Verde - Curacao - Christmas Island - Cyprus - Czech Republic - Germany - Djibouti - Denmark - Dominica - Dominican Republic - Algeria - Ecuador - Estonia - Egypt - Western Sahara - Eritrea - Spain - Ethiopia - Finland - Fiji - Falkland Islands (Malvinas) - Micronesia - Faroe Islands - France - France (Europe only) - Gabon - United Kingdom - Grenada - Georgia - French Guiana - 'Guernsey, C.I' - Ghana - Gibraltar - Greenland - Gambia - Guinea - Guadeloupe - Equatorial Guinea - Greece - South Georgia and The South Sandwich Islands - Guatemala - Guam - Guinea Bissau - Guyana - Hong Kong - Heard Island and Mcdonald Islands - Honduras - Croatia - Haiti - Hungary - Indonesia - Ireland - Israel - Isle of Man - India - British Indian Ocean Territory - Iraq - Iran - Iceland - Italy - 'Jersey, C.I' - Jamaica - Jordan - Japan - Kenya - Kyrgyzstan - Cambodia - Kiribati - Comoros - Saint Kitts and Nevis - Korea (North) - Korea (South) - Kuwait - Cayman Islands - Kazakhstan - Lao People's Democratic Republic - Lebanon - Saint Lucia - Liechtenstein - Sri Lanka - Liberia - Lesotho - Lithuania - Luxembourg - Latvia - Libyan Arab Jamahiriya - Morocco - Monaco - Moldova - Montenegro - Madagascar - Marshall Islands - Macedonia - Mali - Myanmar - Mongolia - Macao - Northern Mariana Islands - Martinique - Mauritania - Montserrat - Malta - Mauritius - Maldives - Malawi - Mexico - Malaysia - Mozambique - Namibia - New Caledonia - Niger - Norfolk Island - Nigeria - Nicaragua - Netherlands - Norway - Nepal - Nauru - Niue - New Zealand - Oman - Panama - Peru - French Polynesia - Papua New Guinea - Philippines - Pakistan - Poland - Saint Pierre and Miquelon - Pitcairn - Puerto Rico - Palestinian Territory - Portugal - Palau - Paraguay - Qatar - Reunion - Romania - Russia - Rwanda - Saudi Arabia - Solomon Islands - Seychelles - Sudan - Sweden - Singapore - Saint Helena - Slovenia - Svalbard and Jan Mayen Islands - Slovakia - Sierra Leone - San Marino - Senegal - Somalia - Suriname - Sao Tome and Principe - Soviet Union (obsolete) - El Salvador - Sint Maarten (Dutch Part) - Syrian Arab Republic - Swaziland - Turks and Caicos Islands - Chad - French Southern Territories - Togo - Thailand - Tajikistan - Tokelau - Timor-Leste - Turkmenistan - Tunisia - Tonga - East Timor - Turkey - Trinidad and Tobago - Tuvalu - Taiwan - Tanzania - Ukraine - Uganda - United States Minor Outlying Islands - United States - Uruguay - Uzbekistan - Vatican City State - Saint Vincent and The Grenadines - Venezuela - 'Virgin Islands, British' - 'Virgin Islands, U.S.' - Vietnam - Vanuatu - Wallis and Futuna Islands - Samoa - Kosovo - Yemen - Mayotte - Yugoslavia (obsolete) - South Africa - Zambia - Zaire - Zimbabwe CurrencyCode1: type: string description: > Allowed **currencyCode** and **foreignCurrencyCode** values on POST (e.g. **USD**, **EUR**). example: USD enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYR - BZD - CAD - CDF - CHF - CLP - CNY - COP - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GGP - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - IMP - INR - IQD - IRR - ISK - JEP - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MUR - MVR - MWK - MXN - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SLL - SOS - SPL - SRD - STD - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TVD - TWD - TZS - UAH - UGX - USD - UYU - UZS - VEF - VND - VUV - WST - XAF - XCD - XDR - XOF - XPF - YER - ZAR - ZMW - ZWD Address: type: object description: > Address details (**state** and **zipCode** are optional where applicable). **country** must be an allowed value from **`#/components/schemas/CountryName`** (**full name** from that schema’s **enum** only; not a two-letter ISO code). required: - address1 - city - country properties: address1: type: string description: Address line 1 example: 100 Main St address2: type: string description: Address line 2 example: Suite 200 city: type: string description: City example: New York state: type: string description: State or region code example: NY zipCode: type: string description: Postal code example: '10001' country: $ref: '#/components/schemas/CountryName' example: address1: 100 Main St address2: Suite 200 city: New York state: NY zipCode: '10001' country: United States BeneficiaryBankDetailsDomestic: type: object description: Beneficiary bank details for **WIRE_DOMESTIC** (routing-based) required: - beneficiaryBankRoutingNumber properties: beneficiaryBankRoutingNumber: type: string description: US bank routing number (domestic) example: '021000021' beneficiaryBankInstructions: type: string description: Optional instructions for the beneficiary bank example: '' example: beneficiaryBankRoutingNumber: '021000021' BeneficiaryBankDetailsInternational: type: object description: >- Beneficiary bank details for **WIRE_INTERNATIONAL** (SWIFT and bank address) required: - beneficiaryBankName - beneficiaryBankSwiftNumber - address properties: beneficiaryBankName: type: string description: Beneficiary bank name example: Deutsche Bank AG beneficiaryBankSwiftNumber: type: string description: SWIFT/BIC code example: DEUTDEFF beneficiaryBankAccountNumber: type: string description: Optional beneficiary bank account number at the beneficiary bank example: '111222333444' address: $ref: '#/components/schemas/Address' beneficiaryBankInstructions: type: string description: Optional instructions for the beneficiary bank example: '' example: beneficiaryBankName: Deutsche Bank AG beneficiaryBankSwiftNumber: DEUTDEFF address: address1: Taunusanlage 12 city: Frankfurt country: Germany BeneficiaryDetails: type: object description: Beneficiary details for Wire Payments (**address** is required) required: - beneficiaryName - address - beneficiaryAccountNumber properties: beneficiaryName: type: string description: Name of the beneficiary example: ABC Supplier Inc address: $ref: '#/components/schemas/Address' beneficiaryAccountNumber: type: string description: Beneficiary account number example: '111222333444' beneficiaryInstructions: type: string description: Instructions for the beneficiary example: 'Payment for invoice #1234' purposeOfWire: type: string description: >- Purpose of the wire transfer. Required when financial institution (FI) approval flow is enabled. example: Trade payment example: beneficiaryName: ABC Supplier Inc address: address1: 100 Main St address2: Suite 400 city: New York state: NY zipCode: '10001' country: United States beneficiaryAccountNumber: '111222333444' purposeOfWire: Trade payment IntermediaryBankDetailsDomestic: type: object description: Optional intermediary bank for **WIRE_DOMESTIC** required: - intermediaryBankType - intermediaryBankRoutingNumber properties: intermediaryBankType: type: string description: 'Intermediary bank type. Allowed values: DOMESTIC, INTERNATIONAL.' enum: - DOMESTIC - INTERNATIONAL example: DOMESTIC intermediaryBankRoutingNumber: type: string description: Intermediary bank routing number example: '021000021' intermediaryBankAccountNumber: type: string description: Optional intermediary bank account number example: '' example: intermediaryBankType: DOMESTIC intermediaryBankRoutingNumber: '021000021' IntermediaryBankDetailsIntlWireDomesticIntermediary: type: object description: > US/domestic intermediary on a **WIRE_INTERNATIONAL** payment. **intermediaryBankName** and SWIFT are not required (not used for this shape). required: - intermediaryBankType - intermediaryBankRoutingNumber properties: intermediaryBankType: type: string description: Must be **DOMESTIC** for this intermediary shape. enum: - DOMESTIC example: DOMESTIC intermediaryBankRoutingNumber: type: string description: Intermediary bank routing number example: '021000021' intermediaryBankAccountNumber: type: string description: Optional intermediary bank account number example: '' example: intermediaryBankType: DOMESTIC intermediaryBankRoutingNumber: '021000021' IntermediaryBankDetailsIntlWireForeignIntermediary: type: object required: [] description: > Foreign (non-US) intermediary on a **WIRE_INTERNATIONAL** payment. Omit **intermediaryBankDetails** unless the FI has international intermediary enabled. **intermediaryBankType** must be **INTERNATIONAL**. **intermediaryBankName** is required (max 45 characters per API validation). At least one of **intermediaryBankSwiftNumber** or **intermediaryBankAccountNumber** must be present; the API requires at least one non-null identifier. When SWIFT/BIC is sent it is validated; when an account number is sent it is validated as an international account number. allOf: - type: object required: - intermediaryBankType - intermediaryBankName properties: intermediaryBankType: type: string description: >- Must be **INTERNATIONAL** when the intermediary is identified by name and SWIFT and/or account number. enum: - INTERNATIONAL example: INTERNATIONAL intermediaryBankName: type: string description: Intermediary bank name; required (max 45 characters). maxLength: 45 example: Chase Bank NA intermediaryBankSwiftNumber: type: string description: >- Intermediary SWIFT/BIC. Include this and/or **intermediaryBankAccountNumber**; validated when present. example: CHASUS33 intermediaryBankAccountNumber: type: string description: >- Intermediary account at the intermediary bank. Include this and/or **intermediaryBankSwiftNumber**; validated when present. example: '' - anyOf: - type: object required: - intermediaryBankSwiftNumber properties: intermediaryBankSwiftNumber: type: string description: >- Intermediary SWIFT/BIC (this branch requires SWIFT; **intermediaryBankAccountNumber** may also be sent). example: CHASUS33 - type: object required: - intermediaryBankAccountNumber properties: intermediaryBankAccountNumber: type: string description: >- Intermediary account at the intermediary bank (this branch requires account number; **intermediaryBankSwiftNumber** may also be sent). example: '1234567890' example: intermediaryBankSwiftNumber: CHASUS33 intermediaryBankName: Chase Bank NA intermediaryBankType: INTERNATIONAL IntermediaryBankDetailsInternational: type: object required: [] description: > Optional intermediary on **WIRE_INTERNATIONAL**: use **IntermediaryBankDetailsIntlWireDomesticIntermediary** when the intermediary is domestic (routing only), or **IntermediaryBankDetailsIntlWireForeignIntermediary** when it is foreign (name and SWIFT required). oneOf: - $ref: >- #/components/schemas/IntermediaryBankDetailsIntlWireDomesticIntermediary - $ref: >- #/components/schemas/IntermediaryBankDetailsIntlWireForeignIntermediary WirePayment: type: object description: >- Wire Payment for POST, POST 201, and GET (list or by id); requires wireTransaction. required: - paymentType - transactionType - tinNumber - accountNumber - deliveryDate - wireTransaction properties: id: type: string description: Unique payment identifier example: 0bdc0bfe-3cfe-4aea-a527-54d0d7f3d650 institutionId: type: string description: Institution identifier example: '45678' paymentName: type: string description: > Optional display name for the payment. If omitted, the API uses the beneficiary name from **wireTransaction** (**beneficiaryDetails.beneficiaryName**). example: Vendor Payroll Batch paymentDescription: type: string description: Description of the payment example: Weekly payroll run paymentType: type: string description: >- Type of payment. Allowed values: ACH_COLLECTION, ACH_PAYMENT, WIRE_DOMESTIC, WIRE_INTERNATIONAL. enum: - ACH_COLLECTION - ACH_PAYMENT - WIRE_DOMESTIC - WIRE_INTERNATIONAL example: WIRE_DOMESTIC transactionType: type: string description: 'Transaction type. Allowed values: CREDIT, DEBIT.' enum: - CREDIT - DEBIT example: DEBIT deliveryDate: type: string description: Scheduled delivery date (YYYY-MM-DD) example: '2025-03-01' accountNumber: type: string description: >- Account number (full in **POST** requests; may be masked in **201** and **GET** responses). example: '1234567890' tinNumber: type: string description: >- Tax identification number (full in **POST** requests; may be masked in **201** and **GET** responses). example: '123456789' status: type: string description: >- Payment status. Allowed values: PENDING_COMPANY_APPROVAL, SCHEDULED, COMPANY_DECLINED, PENDING_FI_APPROVAL, FI_APPROVED, FI_DECLINED, SEND_TO_PROCESSOR, SEND_TO_PROCESSOR_FAILED, PROCESSOR_ACCEPTED, PROCESSOR_REJECTED, PROCESSOR_CANCELLED, PROCESSED, CANCELLED, FAILED, COMPANY_APPROVED, PREFUNDING_PENDING, PREFUNDING_FAILED, EXPIRED_REVERSAL, RECURRING_PAYMENT_CREATE_FAILED, PARTIALLY_PROCESSED, DRAFT. enum: - PENDING_COMPANY_APPROVAL - SCHEDULED - COMPANY_DECLINED - PENDING_FI_APPROVAL - FI_APPROVED - FI_DECLINED - SEND_TO_PROCESSOR - SEND_TO_PROCESSOR_FAILED - PROCESSOR_ACCEPTED - PROCESSOR_REJECTED - PROCESSOR_CANCELLED - PROCESSED - CANCELLED - FAILED - COMPANY_APPROVED - PREFUNDING_PENDING - PREFUNDING_FAILED - EXPIRED_REVERSAL - RECURRING_PAYMENT_CREATE_FAILED - PARTIALLY_PROCESSED - DRAFT example: SCHEDULED confirmationNumber: type: string description: Confirmation number for the payment example: Z5B2U1SP totalAmount: type: number format: double description: Total amount example: 600.25 numberOfPayments: type: integer format: int32 description: Number of payments in the batch example: 1 wireTransaction: $ref: '#/components/schemas/WireTransaction' DomesticWireTransaction: description: Wire transaction body for **WIRE_DOMESTIC** type: object required: - amount - currencyCode - beneficiaryDetails - beneficiaryBankDetails properties: id: type: string description: Transaction identifier example: wire-txn-001 amount: type: number format: double description: Transaction amount example: 50000 transactionPrice: type: number format: double description: Price per transaction (optional) example: 25 currencyCode: $ref: '#/components/schemas/CurrencyCode1' paymentId: type: string description: Parent payment identifier example: 6bdc0bfe-3cfe-4aea-a527-54d0d7f3d656 beneficiaryDetails: $ref: '#/components/schemas/BeneficiaryDetails' beneficiaryBankDetails: $ref: '#/components/schemas/BeneficiaryBankDetailsDomestic' intermediaryBankDetails: $ref: '#/components/schemas/IntermediaryBankDetailsDomestic' example: amount: 50000 transactionPrice: 25 currencyCode: USD beneficiaryDetails: beneficiaryName: ABC Supplier Inc address: address1: 100 Main St city: New York country: United States beneficiaryAccountNumber: '111222333444' beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' InternationalWireTransaction: type: object description: > Wire transaction body for **WIRE_INTERNATIONAL**. When **sendInForeignCurrency** or **transactInForeignCurrency** is true, **foreignCurrencyCode** is required; when **transactInForeignCurrency** is true, **foreignCurrencyAmount** is also required. Do not set both currency flags to true. When both are false, the wire settles in **currencyCode** without separate foreign currency fields. allOf: - type: object required: - amount - currencyCode - beneficiaryDetails - beneficiaryBankDetails properties: id: type: string description: Transaction identifier example: wire-txn-001 amount: type: number format: double description: Transaction amount example: 50000 transactionPrice: type: number format: double description: Price per transaction (optional) example: 25 currencyCode: $ref: '#/components/schemas/CurrencyCode1' paymentId: type: string description: Parent payment identifier example: 6bdc0bfe-3cfe-4aea-a527-54d0d7f3d656 beneficiaryDetails: $ref: '#/components/schemas/BeneficiaryDetails' beneficiaryBankDetails: $ref: '#/components/schemas/BeneficiaryBankDetailsInternational' intermediaryBankDetails: description: >- Optional; FI must enable international intermediary. **DOMESTIC** = ABA routing required; **INTERNATIONAL** = bank name required plus SWIFT and/or account number — see **#/components/schemas/IntermediaryBankDetailsInternational**. $ref: '#/components/schemas/IntermediaryBankDetailsInternational' sendInForeignCurrency: type: boolean default: false description: >- Send in foreign currency; use exactly one of this or **transactInForeignCurrency** set to true example: false transactInForeignCurrency: type: boolean default: false description: >- Transact in foreign currency; use exactly one of this or **sendInForeignCurrency** set to true example: false foreignCurrencyCode: $ref: '#/components/schemas/CurrencyCode1' foreignCurrencyName: type: string description: >- Optional display label for the foreign currency. **foreignCurrencyCode** must match the **#/components/schemas/CurrencyCode** enum (e.g. **EUR**). example: EUR foreignCurrencyAmount: type: number format: double description: Amount in foreign currency example: 63597.07 exchangeRate: type: number format: double description: Exchange rate applied example: 0.847961 - oneOf: - description: >- Settle in **currencyCode** only; foreign currency fields are optional. type: object required: - sendInForeignCurrency - transactInForeignCurrency properties: sendInForeignCurrency: type: boolean enum: - false transactInForeignCurrency: type: boolean enum: - false - description: Send in foreign currency; **foreignCurrencyCode** is required. type: object required: - sendInForeignCurrency - transactInForeignCurrency - foreignCurrencyCode properties: sendInForeignCurrency: type: boolean enum: - true transactInForeignCurrency: type: boolean enum: - false - description: >- Transact in foreign currency; **foreignCurrencyCode** and **foreignCurrencyAmount** are required. type: object required: - sendInForeignCurrency - transactInForeignCurrency - foreignCurrencyCode - foreignCurrencyAmount properties: sendInForeignCurrency: type: boolean enum: - false transactInForeignCurrency: type: boolean enum: - true example: amount: 50000 transactionPrice: 25 currencyCode: USD sendInForeignCurrency: true transactInForeignCurrency: false foreignCurrencyCode: EUR foreignCurrencyAmount: 42398.05 exchangeRate: 0.847961 beneficiaryDetails: beneficiaryName: ABC Supplier GmbH address: address1: Hauptstrasse 1 city: Berlin country: Germany beneficiaryAccountNumber: DE89370400440532013000 beneficiaryBankDetails: beneficiaryBankName: Deutsche Bank AG beneficiaryBankSwiftNumber: DEUTDEFF address: address1: Taunusanlage 12 city: Frankfurt country: Germany WireTransaction: type: object required: [] description: >- Domestic vs international wire transaction; match the variant to **paymentType** (**WIRE_DOMESTIC** or **WIRE_INTERNATIONAL**). oneOf: - $ref: '#/components/schemas/DomesticWireTransaction' - $ref: '#/components/schemas/InternationalWireTransaction' example: amount: 50000 transactionPrice: 25 currencyCode: USD beneficiaryDetails: beneficiaryName: ABC Supplier Inc address: address1: 100 Main St city: New York country: United States beneficiaryAccountNumber: '111222333444' beneficiaryBankDetails: beneficiaryBankRoutingNumber: '021000021' Payments: type: object description: Payment list returned by GET /v1/ach-payments or GET /v1/wire-payments. required: - payments example: payments: [] properties: payments: type: array description: ACH or Wire Payments. example: [] items: type: object description: A single ACH payment or wire payment in the list. required: [] oneOf: - $ref: '#/components/schemas/AchPayment' - $ref: '#/components/schemas/WirePayment' Error2: type: object description: >- Error response body for 4xx and 5xx responses. Open API validation and client errors typically use BBP-126–BBP-185 (400), BBP-131–BBP-132 (401), BBP-134 (404). Some responses may use other PAYMENTS-* codes (e.g. 403, 500); see examples under each HTTP status. required: - code - message properties: code: type: string description: >- Error code (BBP-NNN for most Open API 4xx cases; see response examples) example: BBP-133 message: type: string description: Human-readable error message example: Invalid value for Authorization details: type: array description: Optional validation or detail messages items: type: string description: A single validation or detail message example: deliveryDate is required example: - deliveryDate is required - accountNumber must not be blank Recipients: type: object properties: recipients: type: array items: $ref: '#/components/schemas/Recipient' Recipient: type: object properties: id: type: string description: A generated unique identifier for this recipient. institutionId: type: string description: The id of the institution that this recipient is associated with. institutionCustomerId: type: string description: The id of the user that this recipient is associated with. memberNumber: type: string description: Institution member number of a customer. accountNumber: type: string description: Account number of the recipient. accountType: $ref: '#/components/schemas/DIAccountType3' passCode: type: string description: Passcode of the recipient. email: type: string description: Email address of the recipient. nickName: type: string description: Nick name of the recipient. fullName: type: string description: Full name of the recipient. DIAccountType3: type: string enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - RETIREMENT_IRA - USER_DEFINED Transfer: type: object properties: fromAccountHolderId: type: string description: >- The Institution Customer ID or Location ID of the end user From account being debited in the transfer. toAccountHolderId: type: string description: >- The Institution Customer ID or Location ID of the end user To account being credited in the transfer. fromAccountId: type: string description: The Account ID of the From account being debited in the transfer. toAccountId: type: string description: The Account ID of the To account being credited in the transfer. amount: $ref: '#/components/schemas/Money3' memo: type: string description: The memo to be associated with the transfer. paymentOption: $ref: '#/components/schemas/PaymentOptionType' previousYearContribution: type: boolean description: Flag for IRA previous year contributions. status: $ref: '#/components/schemas/TransferStatus' confirmation: type: string description: The Reg E confirmation message of the transfer. fee: $ref: '#/components/schemas/Money3' payoffAmount: $ref: '#/components/schemas/Money3' notificationMessage: type: string description: End user message sent in the SRT notification. id: type: string description: The identifier for this transfer. Only applicable to SRTs. schedule: $ref: '#/components/schemas/Schedule' Schedule: type: object properties: lifeType: $ref: '#/components/schemas/LifeType' startDate: type: string description: The date on which this schedule will start. format: date endDate: type: string description: The date on which this schedule will end. format: date numberOfExecutions: type: number description: The number of times the scheduled operation will be executed. format: integer frequency: $ref: '#/components/schemas/Frequency' dayOfWeek: type: number description: The day of the week the scheduled operation will execute on. format: integer daysOfMonth: type: array items: type: number format: integer nextExecutionDate: type: string description: The next date that the scheduled operation with execute on. format: date finalExecutionDate: type: string description: >- The date that the last execution of the scheduled operation will occur on. format: date remainingNumberOfExecutions: type: number description: >- The remaining number of times the scheduled operation will be executed. format: integer LifeType: type: string enum: - ENDDATE - NOENDDATE - NUMBEROFEXECUTIONS Frequency: type: string enum: - ONETIME - DAILY - WEEKLY - BIWEEKLY - TWICEMONTHLY - MONTHLY - EVERY4WEEKS - EVERY8WEEKS - QUARTERLY - SEMIANNUALLY - ANNUALLY PaymentOptionType: type: string enum: - DEFAULT - MULTIPLE_PAYMENT - INTEREST_ONLY - PRINCIPAL_ONLY - EXCESS_TO_INTEREST - EXCESS_TO_PRINCIPAL - ESCROW_ONLY - FEES_ONLY TransferStatus: type: string enum: - SUCCESS - ERROR Money3: type: object properties: currencyCode: $ref: '#/components/schemas/CurrencyCode2' amount: type: number description: Specifies the amount value CurrencyCode2: type: string description: ISO 4217 Currency Code enumeration enum: - AED - AFA - ALL - ANG - AOA - AOK - ARP - ARS - AMD - ATS - AUD - AWF - AWG - AZM - BAM - BBD - BDT - BEF - BGL - BHD - BIF - BMD - BND - BOB - BRC - BRL - BSD - BTN - BUK - BWP - BYR - BYB - BZD - CAD - CDF - CHF - CLP - CNY - COP - CRC - CZK - CUP - CVE - DDM - DEM - DJF - DKK - DOP - DZD - ECS - EEK - EGP - ERN - ESP - ETB - EUR - FIM - FJD - FKP - FRF - GBP - GEL - GHC - GIP - GMD - GNF - GRD - GTQ - GWP - GYD - HKD - HNL - HRK - HTG - HUF - IDR - IEP - ILS - INR - IQD - IRR - ISK - ITL - JMD - JOD - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LUF - LVL - LYD - MAD - MDL - MGF - MKD - MMK - MNT - MOP - MRO - MUR - MVR - MWK - MXN - MXP - MYR - MZM - NAD - NGN - NIC - NIO - NLG - NOK - NPR - NZD - OMR - PAB - PEN - PES - PGK - PHP - PKR - PLN - PLZ - PTE - PYG - QAR - ROL - RUR - RWF - SAR - SBD - SCR - SDD - SDP - SEK - SGD - SHP - SIT - SKK - SLL - SM - SOS - SRG - STD - SUR - SVC - SYP - SZL - THB - TMM - TND - TOP - TRL - TTD - TWD - TZS - UAH - UGS - UGX - USD - UYP - UYU - UZS - VND - VUV - VAL - WST - XAF - XCD - XOF - XPF - YER - YUD - ZAR - ZMK - ZRZ - ZWD AlertTemplateResource: type: object properties: alertTypeName: type: string alertTypeResourceId: type: integer format: int64 externalSystem: type: string institutionId: type: string lastUpdatedDttm: type: string locale: type: string state: type: string enum: - DRAFT - PUBLISHED - ARCHIVED templateContents: type: array items: $ref: '#/components/schemas/ChannelContent' variableMap: type: object additionalProperties: type: string title: AlertTemplateResource AlertTemplateResources: type: object properties: alertTemplateResources: type: array items: $ref: '#/components/schemas/AlertTemplateResource' title: AlertTemplateResources AlertTypeResource: type: object properties: additionalInfo: type: object additionalProperties: type: string alertCategory: type: string alertTypeId: type: integer format: int64 alertTypeName: type: string applicableAccountTypes: type: string channels: type: string description: type: string displayAlertTypeName: type: string eventTypeDomain: type: string externalSystem: type: string institutionId: type: string status: type: string enum: - ACTIVE - INACTIVE title: AlertTypeResource AlertTypeResources: type: object properties: alertTypes: type: array items: $ref: '#/components/schemas/AlertTypeResource' title: AlertTypeResources ChannelContent: type: object properties: alertTemplateResourceId: type: integer format: int64 channelType: type: string enum: - EMAIL - SMS - PUSH - WEB templateContent: type: string templateContentType: type: string enum: - EMAIL_SUBJECT - EMAIL_BODY - PUSH_BODY - SMS_BODY - WEB_BODY - WEB_JSON title: ChannelContent InstitutionAlertTypeResource: type: object properties: institutionAlertTypeId: type: integer format: int64 alertTypeName: type: string channelsOptd: type: string reason: type: string statusOptd: type: string enum: - ACTIVE - INACTIVE institutionId: type: string title: InstitutionAlertTypeResource InstitutionAlertTypeResources: type: object properties: institutionAlertTypes: type: array items: $ref: '#/components/schemas/InstitutionAlertTypeResource' title: InstitutionAlertTypeResources AlertPreferenceAccountDetailsModel: type: object properties: accountExternalId: type: string accountId: type: string cardNumber: type: string title: AlertPreferenceAccountDetailsModel AlertPreferenceDetailsModel: type: object properties: alertPrefId: type: integer format: int64 alertTypeName: type: string channelTypeName: type: string externalId: type: string institutionCustomerId: type: string institutionId: type: string title: AlertPreferenceDetailsModel AlertPreferenceResource: type: object properties: additionalInfo: type: object alertOpted: type: boolean alertPreferenceAccountDetails: $ref: '#/components/schemas/AlertPreferenceAccountDetailsModel' alertPreferenceDetails: $ref: '#/components/schemas/AlertPreferenceDetailsModel' allowCallback: type: boolean defaultPreferences: type: boolean title: AlertPreferenceResource AlertPreferenceResources: type: object properties: alertPreferences: type: array items: $ref: '#/components/schemas/AlertPreferenceResource' title: AlertPreferenceResources FiAlertPreferenceResource: type: object properties: additionalInfo: type: object institutionAlertPrefId: type: integer format: int64 alertTypeName: type: string channelTypeName: type: string institutionId: type: string alertOpted: type: boolean title: FiAlertPreferenceResource FiAlertPreferenceResources: type: object properties: fiAlertPreferences: type: array items: $ref: '#/components/schemas/FiAlertPreferenceResource' title: FiAlertPreferenceResources Subscriptions: type: array items: $ref: '#/components/schemas/Subscription' Subscription: type: object properties: id: type: string description: The primary ID of the Subscription fiId: type: string description: The Financial Institution ID. fiCustomerId: type: string description: FI Customer Id. eventTypeId: type: string description: The event type for this subscription. fulfillment: type: string description: >- Info on the number of remaining scheduled runs required to fulfill this schedule. subscriptionEventConditionsMap: type: object additionalProperties: $ref: '#/components/schemas/subscriptionEventConditionsMap' description: subscriptionEventConditionsMap. subscriptionActions: type: object additionalProperties: $ref: '#/components/schemas/subscriptionActions' description: List of actions for this subscription subscriptionEventConditionsMap: type: object properties: map: type: array description: Event Condition Key Value pairs for this subscription items: $ref: '#/components/schemas/entry' entry: type: object properties: key: type: string description: condition key value: type: string description: condition value subscriptionActions: type: object properties: subscriptionAction: type: array description: subscription action items: $ref: '#/components/schemas/subscriptionAction' subscriptionAction: type: object properties: name: type: string description: The name of the subscription action subscriptionActionAttributesMap: type: object additionalProperties: $ref: '#/components/schemas/subscriptionActionAttributesMap' description: Action Attribute Key Value pairs for this action of the subscription subscriptionActionAttributesMap: type: object properties: map: type: array description: Action Attribute Key Value pairs for this action of the subscription items: $ref: '#/components/schemas/entry' Events: type: object properties: Event: type: array description: Event items: $ref: '#/components/schemas/Event' Event: type: object properties: fiCustomerId: type: string description: FI Customer Id fiId: type: string description: FI Id eventType: type: string description: Event Type dataMap: type: array description: Data Map items: $ref: '#/components/schemas/dataMap' dataMap: type: object properties: map: type: array description: Action Attribute Key Value pairs for this action of the subscription items: $ref: '#/components/schemas/entry' AlertHistoryContentResource: type: object properties: alertHistoryContentId: type: integer format: int64 alertHistoryId: type: integer format: int64 emailContent: type: string emailSubjectContent: type: string eventId: type: string pushContent: type: string smsContent: type: string title: AlertHistoryContentResource AlertHistorySummaryResource: type: object properties: additionalInfo: type: object alertHistoryId: type: integer format: int64 alertTypeName: type: string channelInfo: type: object additionalProperties: type: string eventId: type: string eventOccured: type: string format: date-time institutionCustomerId: type: string institutionId: type: string jsonMessageSummary: type: string messageSummary: type: string readFlag: type: boolean title: AlertHistorySummaryResource AlertHistorySummaryResources: type: object properties: alertHistorySummaryResources: type: array items: $ref: '#/components/schemas/AlertHistorySummaryResource' title: AlertHistorySummaryResources Event1: type: object properties: eventDetails: $ref: '#/components/schemas/EventDetails' eventDomainType: type: string title: Event EventDetails: type: object properties: additionalInfo: type: object eventId: type: string eventNoticed: type: string format: date-time eventOccured: type: string format: date-time eventSource: type: string eventTags: type: array items: type: string eventType: type: string institutionCustomerId: type: string institutionId: type: string title: EventDetails InstitutionDisclosureCreateRequest: type: object description: > Request payload used to create an institution disclosure. During creation, the service validates required fields and persists a new disclosure definition for the institution. required: - institutionDisclosureName properties: institutionDisclosureName: type: string description: > Name of the disclosure being defined for the institution. This value identifies the disclosure type and is required when creating or updating an institution disclosure. example: OLS institutionDisclosureData: type: string description: > Optional URL pointing to the disclosure content to be presented to users. When provided, the value must be printable ASCII and `institutionDisclosureDataType` must be set to `URL`. Maximum length is enforced by the service. example: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: $ref: '#/components/schemas/InstitutionDisclosureDataType' institutionDisclosureStatus: type: boolean description: > Optional flag indicating whether the disclosure is enabled for the institution. A value of `true` makes the disclosure active and available for use in user workflows. The default value is `false`. example: true example: institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: URL institutionDisclosureStatus: true InstitutionDisclosureUpdateRequest: type: object description: > Request payload used to update an existing institution disclosure. It includes the same fields as the create request along with the required system‑assigned `institutionDisclosureId`, which identifies the disclosure to be updated. required: - institutionDisclosureId allOf: - $ref: '#/components/schemas/InstitutionDisclosureCreateRequest' properties: institutionDisclosureId: type: string description: Unique identifier for the financial institution's disclosure. example: 50145570B91B5BD3E063B9E011AC7529 institutionDisclosureName: example: OLS institutionDisclosureData: example: 'https://www.testbank.com/disclosure2.pdf' institutionDisclosureDataType: example: URL institutionDisclosureStatus: example: true InstitutionDisclosuresResponse: type: object description: > Response object containing the collection of institution disclosures configured for the financial institution. Each entry represents a disclosure definition returned by the backend service, reflecting its current persisted state. required: - institutionDisclosures properties: institutionDisclosures: type: array description: > Collection of institution disclosures configured for the financial institution. items: $ref: '#/components/schemas/InstitutionDisclosure' example: institutionDisclosures: - institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: TEST_DISCLOSURE_123 - institutionDisclosureId: 50145570B91B5BD3E063B9E011AC7529 institutionId: 05529 institutionDisclosureName: OLS institutionDisclosureData: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: URL InstitutionDisclosure: type: object description: > Represents an institution disclosure resource returned by the service, reflecting the current persisted state and configuration of the disclosure. required: - institutionDisclosureId - institutionId allOf: - $ref: '#/components/schemas/InstitutionDisclosureCreateRequest' properties: institutionDisclosureId: type: string description: Unique identifier for the financial institution's disclosure. example: 50145570B91B5BD3E063B9E011AC7529 institutionId: type: string description: >- Identifier of the financial institution to which the disclosure belongs. example: 05529 institutionDisclosureName: example: OLS institutionDisclosureData: example: 'https://www.testbank.com/disclosure.pdf' institutionDisclosureDataType: example: URL InstitutionDisclosureDataType: type: string description: > Indicates the type of content stored in `institutionDisclosureData`. For create and update requests, only `URL` is supported when disclosure data is provided. enum: - UNKNOWN - URL - CONFIG - RAW example: URL InstitutionUserDisclosureCreateRequest: type: object description: > Request payload used to create or update (for online statement disclosure) a user disclosure record, representing a user’s acceptance or enrollment state for a specific institution disclosure. properties: institutionDisclosureId: type: string description: > Identifier of the institution disclosure to which this user disclosure applies. **Required** when creating a user disclosure record for a customized disclosure. Optional for top-level OLS/ESIGN/IB disclosures. example: 50145570B91B5BD3E063B9E011AC7529 institutionDisclosureName: type: string description: > Name of the institution disclosure to which this user disclosure applies. **Required** when creating or updating a user disclosure record for OLS/ESIGN/IB disclosures. **Optional** for custom disclosures. example: OLS institutionUserDisclosureStatus: $ref: '#/components/schemas/InstitutionUserDisclosureStatus' institutionUserDisclosureStatusUpdateDateTime: type: string description: > Date and time when the user’s disclosure status was last updated, such as when the disclosure was accepted, rejected, enrolled, or unenrolled. format: date-time example: '2026-04-20T09:00:00.000-07:00' accountId: type: string description: > Identifier of the account to which the user disclosure applies. Required when creating or updating an online statement disclosure if multi‑statement is enabled. example: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ paperWaiver: type: boolean description: > Indicates whether the user has waived paper statements. A value of `true` represents an electronic statement preference; `false` represents a paper statement preference. **Required** when creating or updating a user disclosure record for an online statement disclosure. example: true example: institutionDisclosureName: OLS accountId: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ institutionUserDisclosureStatus: ACCEPTED paperWaiver: true InstitutionUserDisclosureUpdateRequest: type: object description: > Request payload used to update an existing customized user disclosure record, including the system‑assigned `institutionDisclosureId` used to identify the disclosure and apply changes to the user’s acceptance or enrollment state. properties: institutionDisclosureId: type: string description: > Identifier of the institution disclosure to which this user disclosure applies. **Required** for custom disclosures. **Optional** for top-level ESIGN/IB disclosures. example: 50145570B9165BD3E063B9E011AC7529 institutionDisclosureName: type: string description: > Name of the institution disclosure to which this user disclosure applies. **Required** for top-level ESIGN/IB disclosures. **Optional** for custom disclosures. example: TEST_DISCLOSURE_123 institutionUserDisclosureStatus: $ref: '#/components/schemas/InstitutionUserDisclosureStatus' institutionUserDisclosureStatusUpdateDateTime: type: string description: > Date and time when the user’s disclosure status was last updated, such as when the disclosure was accepted, rejected, enrolled, or unenrolled. format: date-time example: '2026-04-20T09:00:00.000-07:00' example: institutionUserDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionDisclosureName: TEST_DISCLOSURE_123 InstitutionUserDisclosureDeleteRequest: type: object description: | Request payload used to delete an account-specific OLS disclosure. required: - institutionDisclosureName - accountId properties: institutionDisclosureName: type: string description: > Name of the institution disclosure to which this user disclosure applies - must be "OLS". example: OLS accountId: type: string description: Identifier of the account to which the user's disclosure applies. example: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ example: institutionDisclosureName: OLS accountId: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ InstitutionUserDisclosuresResponse: type: object description: > Response object containing the collection of user disclosure records returned by the service. Each record represents a user’s disclosure acceptance or enrollment state as currently persisted. required: - institutionUserDisclosures properties: institutionUserDisclosures: type: array description: > List of user disclosure records returned by the service, each reflecting the current persisted state of a user disclosure. items: $ref: '#/components/schemas/InstitutionUserDisclosure' example: institutionUserDisclosures: - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T09:00:00.000-07:00' institutionDisclosureName: TEST_DISCLOSURE_123 - institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T08:00:00.000-07:00' paperWaiver: true institutionDisclosureName: OLS InstitutionUserDisclosure: type: object description: > Represents a user disclosure record returned by the service, reflecting the user’s current acceptance or enrollment state for a specific institution disclosure. required: - institutionId - institutionUserId - institutionDisclosureName properties: institutionUserDisclosureId: type: string description: Identifier of the user disclosure record. example: 382120AE269460DEE053DF9C660A88DB institutionId: type: string description: > Identifier of the financial institution that owns the disclosure and the associated user disclosure record. example: 05529 institutionUserId: type: string description: Identifier of the user to whom this disclosure record applies. example: C1A2D866C42870C5E0533093660AC711 institutionDisclosureId: type: string description: > Identifier of the institution disclosure definition associated with this user disclosure record. example: 50145570B91B5BD3E063B9E011AC7529 institutionUserDisclosureStatus: $ref: '#/components/schemas/InstitutionUserDisclosureStatus' institutionUserDisclosureStatusUpdateDateTime: type: string description: > Date and time when the user’s disclosure status was last updated, such as when the disclosure was accepted, rejected, enrolled, or unenrolled. format: date-time example: '2026-04-20T09:00:00.000-07:00' paperWaiver: type: boolean description: > Indicates whether the user has waived paper statements. A value of `true` represents an electronic statement preference; `false` represents a paper statement preference. example: true accountId: type: string description: > Identifier of the account to which the user disclosure applies, when the disclosure is account‑specific. example: xsIv99a3eDsUA53KnzFwL-dtRv49hVeOC6Vy1zk7cAQ institutionDisclosureName: type: string description: >- Name of the institution disclosure to which this user disclosure applies. example: TEST_DISCLOSURE_123 example: institutionId: 05529 institutionUserId: C1A2D866C42870C5E0533093660AC711 institutionDisclosureId: 50145570B9165BD3E063B9E011AC7529 institutionUserDisclosureStatus: ACCEPTED institutionUserDisclosureStatusUpdateDateTime: '2026-04-20T09:00:00.000-07:00' institutionDisclosureName: TEST_DISCLOSURE_123 InstitutionUserDisclosureStatus: type: string description: > Represents the current enrollment or acceptance status of a user for an institution disclosure. For OLS/ESIGN disclosures, only `ACCEPTED` and `NOT_ACCEPTED` are supported. enum: - ENROLLED - NOT_ENROLLED - NOT_ACCEPTED - ACCEPTED example: ACCEPTED AccountType2: type: string description: Describes the type of account classified by Candescent. enum: - SAVINGS - CHECKING - MONEY_MARKET - BROKERAGE - TRUST - LINE_OF_CREDIT_LOAN - TCL_CREDIT_LINE - UNKNOWN - KEOGH - RETIREMENT_401K - CERT_OF_DEPOSIT - CSI_CERT_OF_DEPOSIT - CREDIT_CARD_LOAN - INSTALLMENT_LOAN - CONSUMER_LOAN - COMMERCIAL_LOAN - MORTGAGE_LOAN - RESIDENTIAL_MORTGAGE_LOAN - COMMERCIAL_REFI_LOAN - HOME_EQUITY_LOAN - GENERAL_LEDGER_ACCOUNT - GENERAL_LEDGER_CODE - TCL_MASTER - TCL_NOTE - USER_DEFINED - RETIREMENT_IRA example: CHECKING ExperienceGroupRequest: type: object description: > Request payload for creating or updating an experience group. - `groupName` is required. - On create, `groupType` defaults to `EXPERIENCE_GROUP` and `groupPlatform` defaults to `RETAIL_BANKING` when omitted. - On update, only `groupName` and `groupDescription` are applied. `groupType` and `groupPlatform` are immutable and ignored if provided. required: - groupName properties: groupName: type: string description: > Name of the experience group. Must be unique within the institution and cannot be blank. maxLength: 50 example: Test New Feature groupDescription: type: string description: > Optional description of the experience group. Maximum length is 450 characters. When updating a group, omit this field to remove the existing description. maxLength: 450 example: This group is used to test the new feature. groupType: type: string description: > Type of group. Optional when creating a group and defaults to `EXPERIENCE_GROUP`. The only supported value is `EXPERIENCE_GROUP`. This field cannot be modified after group creation. enum: - EXPERIENCE_GROUP example: EXPERIENCE_GROUP groupPlatform: type: string description: > Platform associated with the group. Optional when creating a group and defaults to `RETAIL_BANKING`. The only supported value is `RETAIL_BANKING`. This field cannot be modified after group creation. enum: - RETAIL_BANKING example: RETAIL_BANKING example: groupName: Test New Feature groupDescription: This group is used to test the new feature. groupType: EXPERIENCE_GROUP groupPlatform: RETAIL_BANKING ExperienceGroupResponse: type: object description: Experience group returned by create and update operations. required: - groupId - groupName - groupType - groupPlatform - groupLastUpdatedDateTime - groupParticipantCount - groupStatus properties: groupId: type: string description: Unique identifier of the experience group. format: uuid example: 9d551eeb-3254-4ac4-b449-668b374f4066 groupName: type: string description: Name of the experience group. Must be unique within the institution. maxLength: 50 example: Test New Feature groupDescription: type: string description: | Optional description of the experience group. maxLength: 450 example: This group is used to test the new feature. groupType: type: string description: > Type of the experience group. The value is always `EXPERIENCE_GROUP`. enum: - EXPERIENCE_GROUP example: EXPERIENCE_GROUP groupPlatform: type: string description: > Platform associated with the experience group. The value is always `RETAIL_BANKING`. enum: - RETAIL_BANKING example: RETAIL_BANKING groupLastUpdatedDateTime: type: string description: 'Date and time when the group was last updated, in ISO 8601 format.' format: date-time example: '2026-07-23T16:19:00.613Z' groupParticipantCount: type: integer description: Number of participants currently associated with the group. format: int32 example: 0 groupStatus: type: string description: Current status of the experience group. enum: - ACTIVE - DELETED example: ACTIVE example: groupId: 9d551eeb-3254-4ac4-b449-668b374f4066 groupName: Test New Feature groupDescription: This group is used to test the new feature. groupType: EXPERIENCE_GROUP groupPlatform: RETAIL_BANKING groupLastUpdatedDateTime: '2026-07-23T16:19:00.613Z' groupParticipantCount: 0 groupStatus: ACTIVE DeleteExperienceGroupResponse: type: object description: Confirmation returned when an experience group is successfully deleted. required: - code - message properties: code: type: string description: > Application response code indicating the result of the delete operation. A value of `1000` indicates the group was deleted successfully. example: '1000' message: type: string description: Confirmation message identifying the deleted experience group. example: >- groupId 9d551eeb-3254-4ac4-b449-668b374f4066 was successfully deleted example: code: '1000' message: groupId 9d551eeb-3254-4ac4-b449-668b374f4066 was successfully deleted ExperienceGroupsResponse: type: object description: > Paginated response containing active experience groups for the authenticated financial institution, including participant counts and navigation links. required: - _links - page properties: _embedded: type: object description: > Experience groups returned for the current page. May be omitted when no groups match the request. required: - groupsWithParticipantsCountList properties: groupsWithParticipantsCountList: type: array description: | Experience groups included in the current page of results. items: $ref: '#/components/schemas/GroupsWithParticipantsCount' _links: type: object description: Navigation links for the paginated result set. required: - self additionalProperties: $ref: '#/components/schemas/HalLink' properties: first: $ref: '#/components/schemas/HalLink' self: $ref: '#/components/schemas/HalLink' next: $ref: '#/components/schemas/HalLink' last: $ref: '#/components/schemas/HalLink' prev: $ref: '#/components/schemas/HalLink' page: $ref: '#/components/schemas/Page' example: _embedded: groupsWithParticipantsCountList: - groupId: 6dec7bda-e26c-411e-bea0-3b274bb7e5cc groupName: AIC_AUTOMATION_USERS_GRP groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 9cae3fa6-7e23-4d57-8576-ecb44a7efd21 groupName: AIC_TEST_USERS groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: cf7a7eae-6890-4269-94b7-5a0c092010f7 groupName: AITESTGROUP groupType: EXPERIENCE_GROUP noOfParticipants: 0 - groupId: a1d2150c-7b48-4ac8-8379-1e955be83169 groupName: AA1_New groupType: EXPERIENCE_GROUP noOfParticipants: 5 - groupId: cb080e54-48a5-45b7-94f0-079801d7ec7f groupName: AcctGrouping groupType: EXPERIENCE_GROUP noOfParticipants: 3 - groupId: 2d588d32-88e0-44c9-9041-c7cba7e28660 groupName: AA_Group groupType: EXPERIENCE_GROUP noOfParticipants: 2 - groupId: 8ed30b1e-6772-4c1e-8e63-9612d2e372ab groupName: Allowed Users Group groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: 831c2ab1-7f21-4159-bbde-a4e257c3dfa0 groupName: BAURetail groupType: EXPERIENCE_GROUP noOfParticipants: 1 - groupId: cf6a165e-ac5d-4cd3-a59a-4038ce33858b groupName: AA_New_Modern_Grp groupType: EXPERIENCE_GROUP noOfParticipants: 11 - groupId: 50ae2401-8a51-4ca7-864e-2b56f627d1ca groupName: BB Test Group groupType: EXPERIENCE_GROUP noOfParticipants: 0 _links: first: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=0&size=10&sort=groupName,asc prev: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=0&size=10&sort=groupName,asc self: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=1&size=10&sort=groupName,asc next: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=2&size=10&sort=groupName,asc last: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=14&size=10&sort=groupName,asc page: size: 10 totalElements: 145 totalPages: 15 number: 1 GroupsWithParticipantsCount: type: object description: >- Summary information for an experience group, including its participant count. required: - groupId - groupName - groupType - noOfParticipants properties: groupId: type: string description: Unique identifier of the experience group. format: uuid example: 6dec7bda-e26c-411e-bea0-3b274bb7e5cc groupName: type: string description: Name of the experience group. example: AIC_AUTOMATION_USERS_GRP groupType: type: string description: Type of the experience group. enum: - EXPERIENCE_GROUP example: EXPERIENCE_GROUP noOfParticipants: type: integer description: Number of participants currently assigned to the group. format: int32 example: 1 example: groupId: 6dec7bda-e26c-411e-bea0-3b274bb7e5cc groupName: AIC_AUTOMATION_USERS_GRP groupType: EXPERIENCE_GROUP noOfParticipants: 1 Page: type: object description: Pagination metadata for list responses. required: - size - totalElements - totalPages - number properties: size: type: integer description: Number of groups returned per page. format: int64 example: 10 totalElements: type: integer description: Total number of matching experience groups. format: int64 example: 145 totalPages: type: integer description: Total number of available pages. format: int64 example: 15 number: type: integer description: Zero-based index of the current page. format: int64 example: 1 example: size: 10 totalElements: 145 totalPages: 15 number: 1 HalLink: type: object description: Navigation link. required: - href properties: href: type: string description: URL for the linked resource. example: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=1&size=10&sort=groupName,asc example: href: >- https://gateway-dev-x.dev.ext.dracobank.com/digitalbanking/groups/v3/groups?page=1&size=10&sort=groupName,asc UploadExperienceGroupParticipantsRequest: type: object description: > Multipart form data used to upload participant IDs to an experience group. - `type` is required and specifies the import operation. - `fileName` is required and must contain a CSV file. - Supported request content types are `multipart/form-data` and `multipart/mixed`. - Supported file content types are `text/csv` and `application/vnd.ms-excel`. - CSV content is validated asynchronously when the import job is processed. Example multipart fields: | Field | Value | | --- | --- | | `type` | `ADD` | | `fileName` | `participants.csv` | Example `participants.csv` content: ```csv ParticipantId 202510091 ``` required: - type - fileName properties: type: type: string description: > Import operation to perform. Values are case-insensitive. - `ADD`: Adds the uploaded participants to the group. - `REMOVE`: Removes the uploaded participants from the group. - `REPLACE`: Replaces all existing participants with the uploaded list. enum: - ADD - REMOVE - REPLACE example: ADD fileName: type: string description: > CSV file of retail banking member numbers. - The file must include a `ParticipantId` column. - Each `ParticipantId` value is a retail banking member number and must not exceed 32 characters. - Values are validated during import job processing. Example file content: ```csv ParticipantId 202510091 ``` format: binary example: participants.csv example: type: ADD fileName: participants.csv UploadExperienceGroupParticipantsResponse: type: object description: > Response returned when a participant file upload is accepted and an asynchronous import job is created. required: - code - message - jobId - jobStatus properties: code: type: string description: > Application response code indicating the result of the upload request. A value of `1000` indicates the upload request was accepted. example: '1000' message: type: string description: > Confirmation message identifying the uploaded file, experience group, and created import job. example: >- File upload for file: participants.csv and group: cc8e0de6-b556-4974-9c70-7d3f9cb58fb8 was successful with jobId: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobId: type: string description: > Unique identifier of the import job created for the upload. Use the [Get Job by ID](/api/generated/get-job-v-3/) endpoint to monitor job status and review processing results. format: uuid example: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobStatus: type: string description: > Current status of the import job. Upload requests return an initial status of `CREATED`. enum: - CREATED - PROCESSING - SUCCESSFUL - PARTIAL_SUCCESS - FAILED - CANCELLED - UNKNOWN example: CREATED example: code: '1000' message: >- File upload for file: participants.csv and group: cc8e0de6-b556-4974-9c70-7d3f9cb58fb8 was successful with jobId: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobId: d085e6aa-c4e2-4caf-abbb-7e8ab3160751 jobStatus: CREATED Pageable: type: object properties: page: minimum: 0 type: integer format: int32 default: 0 size: minimum: 1 type: integer format: int32 default: 20 sort: type: array items: type: string BasePageDTOListImportJobErrorDTO: type: object properties: links: type: array items: $ref: '#/components/schemas/Links' content: type: array items: $ref: '#/components/schemas/ImportJobErrorDTO' page: $ref: '#/components/schemas/Page1' ImportJobErrorDTO: type: object properties: lineNbr: type: integer format: int32 errorMsg: type: string links: type: array items: $ref: '#/components/schemas/Links' ImportJobDTOSingle: type: object properties: jobId: type: string groupId: type: string groupName: type: string groupType: type: string inputFileName: type: string workingFileName: type: string type: type: string totalRecordsCount: type: integer format: int32 successRecordsCount: type: integer format: int32 failedRecordsCount: type: integer format: int32 jobDetails: type: string jobStatus: type: string jobCreatedBy: type: string createdDateTime: type: string lastUpdatedDateTime: type: string ImportJobDTO: type: object properties: jobId: type: string groupId: type: string groupName: type: string groupType: type: string inputFileName: type: string workingFileName: type: string type: type: string totalRecordsCount: type: integer format: int32 successRecordsCount: type: integer format: int32 failedRecordsCount: type: integer format: int32 jobDetails: type: string jobStatus: type: string jobCreatedBy: type: string createdDateTime: type: string lastUpdatedDateTime: type: string links: type: array items: $ref: '#/components/schemas/Links' BasePageDTOListImportJobDTO: type: object properties: links: type: array items: $ref: '#/components/schemas/Links' content: type: array items: $ref: '#/components/schemas/ImportJobDTO' page: $ref: '#/components/schemas/Page1' Links: type: object properties: rel: type: string href: type: string Page1: type: object properties: size: type: integer format: int64 totalElements: type: integer format: int64 totalPages: type: integer format: int64 number: type: integer format: int64 UploadResponse: type: object properties: jobId: type: string example: jobId: 66cad6ce-97de-4c88-a3c4-8be46837809d Error3: type: object properties: userMessage: type: string example: userMessage: User list can't be empty UserList: required: - name - users type: object properties: name: type: string users: type: array items: type: string example: name: My new user list users: - some_member_id - another_member_id JobUploadStatus: type: object properties: jobId: type: string listName: type: string fiId: type: string memberIdsCount: type: integer validMemberIdsCount: type: integer status: type: object properties: code: type: string failedUsers: type: array items: type: string uploadedUsers: type: integer message: type: string example: jobId: 66cad6ce-97de-4c88-a3c4-8be46837809d listName: My user list fiId: '01234' memberIdsCount: 50000 validMemberIdsCount: 49750 status: code: Completed failedUsers: [] uploadedUsers: 50000 message: '' FileMetadata: required: - userlistFileName - userlistName - userlistOperation type: object properties: userlistFileName: type: string userlistName: type: string userlistOperation: type: string userlistDescription: type: string UserListsDTO: type: object properties: userLists: type: array items: $ref: '#/components/schemas/UserListsWithFileMetadata' UserListsWithFileMetadata: type: object properties: fileMetadata: $ref: '#/components/schemas/FileMetadata' fileStatus: type: object properties: succeededUserCount: type: integer jobStatusMessage: type: string userCount: type: integer failedUserCount: type: integer fileErrorReport: type: object properties: message: type: string UserListFileDTO: type: object properties: fileMetadata: $ref: '#/components/schemas/FileMetadata' fileStatus: $ref: '#/components/schemas/fileStatus' fileErrorReport: $ref: '#/components/schemas/fileErrorReport' UserListsFileResponse: type: object properties: userLists: type: array items: $ref: '#/components/schemas/UserListFileDTO' MxPlatformError: type: object description: > Returned from MX without modification. The error structure is defined by the MX Platform endpoint. Refer to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/overview/errors) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/overview/errors) documentation for supported schemas and examples. additionalProperties: true MxRealTimeError: type: object description: > Returned from MX without modification. The error structure is defined by the MX Real Time endpoint. Refer to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/#errors) documentation for supported schemas and examples. additionalProperties: true MxReportingError: type: object description: > Returned from MX without modification. The error structure is defined by the MX Reporting endpoint. Refer to the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/requirements#errors) documentation for supported schemas and examples. additionalProperties: true MxSsoError: type: object description: > Returned from MX without modification. The error structure is defined by the MX SSO endpoint. Refer to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/api-requirements#http-status-codes) documentation for supported schemas and examples. additionalProperties: true parameters: ClientAuthBasicAuthorization: name: Authorization in: header required: true description: > Standard HTTP Basic Authentication header constructed using the application's `client_id` and `client_secret` obtained during application registration. schema: type: string example: 'Basic ' OAuthV1Authorization: name: Authorization in: header required: true description: > Legacy OAuth V1 access token for authentication, see [OAuth V1 token endpoint](/api/generated/create-access-token-v-1/) for details. Format: 'Bearer {token}' schema: type: string pattern: ^Bearer\s.+$ example: Bearer 18FaavwuGejYXBhj7grtrP57ZbCX OAuthV2Authorization: name: Authorization in: header required: true description: > OAuth 2.0 access token for authentication, see [OAuth V2 token endpoint](/api/generated/create-access-token-v-2/) for details. Format: 'Bearer {token}' schema: type: string pattern: ^Bearer\s.+$ example: Bearer 18FaavwuGejYXBhj7grtrP57ZbCX TransactionIdRequest: name: transactionId in: header required: true schema: $ref: '#/components/schemas/RequestTraceId' CorrelationIdRequest: name: correlationId in: header required: true schema: $ref: '#/components/schemas/RequestTraceId' DITidRequest: name: di_tid in: header required: true schema: $ref: '#/components/schemas/RequestTraceId' HostUserId: name: hostUserId in: query required: false x-conditionally-required: when: grant_type=client_credentials x-mutually-exclusive: - loginId description: > Identifier for the user associated with the financial institution. This parameter is **required** when the access token was issued using the `client_credentials` grant type; otherwise, it is optional. Cannot be used with `loginId` query parameter. schema: type: string example: '1234567890' LoginId: name: loginId in: query required: false x-conditionally-required: when: grant_type=client_credentials x-mutually-exclusive: - hostUserId description: > Login identifier for the user associated with the financial institution. This parameter is **required** when the access token was issued using the `client_credentials` grant type; otherwise, it is optional. Cannot be used with `hostUserId` query parameter. schema: type: string example: testUser AuthCodeInstitutionId: name: institutionId in: header required: true description: Unique identifier of the financial institution. schema: type: string example: '00016' InstitutionUsersUserIdType: name: userIdType in: query required: false description: > Set this parameter to match the identifier type provided in `institutionUserId`. The default value is `INSTITUTION_USER_ID`. Supported values: - `INSTITUTION_USER_ID` — Candescent institution user identifier - `HOST_USER_ID` — Host system member number (retail users only; not applicable to business banking users) - `LOGIN_ID` — User login identifier - `LEGACY_USER_GUID` — Legacy product user GUID (legacy customer identifier) - `USER_ID` — Authentication user identifier (`authId`) schema: type: string enum: - INSTITUTION_USER_ID - HOST_USER_ID - LOGIN_ID - LEGACY_USER_GUID - USER_ID default: INSTITUTION_USER_ID example: LOGIN_ID AccountsInstitutionCustomerIdList: name: institutionCustomerId in: query required: false x-conditionally-required: when: > Business Banking user with multiple institution customers (locations) when not using grouped paging x-mutually-exclusive: - $apply - $skipGroups - $topGroups description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 262a5838fb6d4a7faae4d32377ec7e77 AccountsInstitutionCustomerId: name: institutionCustomerId in: query required: false description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 262a5838fb6d4a7faae4d32377ec7e77 AccountsViewName: name: viewName in: query required: false description: > - **Omit** `viewName`: return all fields in **`viewname.external`**. Default: `id`, `institutionUserId`, `institutionCustomerId`, `institutionId`, `description`, `accountNumber`, `nickName`, `type`, `category`, `currentBalance`, `availableBalance`, `status`, `allowedActions`, `routingNumber`, `interestRate`, `interestYearToDate`, `micrNumber`, `maturityDate`, `term`, `escrowBalance`, `currentPrincipalBalance`, `nextPaymentAmount`, `nextPaymentDate`, `payOffAmount`, `calculatedPayOffAmount`, `minimumPayment`, `lineOfCreditLimit`, `loanOriginationDate`, `pastPrincipalDueDate`, `lastPrincipalPaymentAmount`, `originalLoanAmount`, `tpvReference`, `lastStatementBalance`, `primaryHolderName`. - **`s`** (**small**): **`viewname.small`** ∩ **`viewname.external`**. Default: `id`, `institutionUserId`, `institutionCustomerId`, `institutionId`, `description`, `accountNumber`, `type`, `category`, `currentBalance`, `availableBalance`, `lastStatementBalance`, `status`, `allowedActions`, `routingNumber`, `maturityDate`, `nextPaymentAmount`, `nextPaymentDate`, `payOffAmount`, `calculatedPayOffAmount`, `tpvReference`. - **`m`** (**medium**): Return only fields that are listed in **`viewname.external`** *and* in **`viewname.small`** ∪ **`viewname.medium`** (the service merges medium with small, then keeps the intersection with external). **Default:** same field set as **Omit** above, **minus** **`micrNumber`**. **`micrNumber`** is partner-allowed in **`viewname.external`** but is **not** present in the default **`viewname.small`** or **`viewname.medium`** lists, so it never appears when `viewName=m`. Field visibility remains subject to OAuth scopes and masking rules. schema: type: string enum: - s - m example: s AccountsCrossAccount: name: crossAccount in: query required: false description: > Controls whether cross‑user (joint or cross‑member) accounts are retrieved. When `true` (default), the service may perform additional lookups to include cross‑user accounts the authenticated user is entitled to. When `false`, the service skips the extra lookup to reduce processing time; however, cross‑user accounts may still appear if they are returned by the primary account request. schema: type: boolean default: true example: true AccountsAdditionalFields: name: additionalFields in: query required: false description: > Flag to include additional account metadata. When `true`, the response may include an `additionalInfo` map with supplemental fields not returned by default. Availability of these fields depends on client type, entitlements, and request context. schema: type: boolean default: false example: true BankingImagesInstitutionCustomerId: name: institutionCustomerId in: query required: false description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 489ee99dbb284f9fa7b2786d48cd61e0 BankingImagesAccountId: name: accountId in: query required: true description: >- Unique identifier of the account associated with the requested banking images. schema: type: string example: mwtd9yzIwvyKbf9hz9xxiTMfVw1mV2-g7h4UbqBDCFI BankingImagesImageType: name: imageType in: query required: true description: > Identifies the category of banking document images to return. Allowed values are those of `ImageType`. Required companion query parameters depend on the selected image type. schema: $ref: '#/components/schemas/ImageType1' BankingImagesImageIdentifier: name: imageIdentifier in: query required: false x-conditionally-required: when: imageType is DEPOSIT_SLIP or DEPOSIT_CHECK description: > Host‑side identifier for a **transaction image** (check or deposit slip) used to locate the underlying transaction on the host system. When provided, the service compares this value against the transaction image identifier in host transaction data during image resolution. **Required** when `imageType` is `DEPOSIT_SLIP` or `DEPOSIT_CHECK`. If the institution enables deposit check image identifier matching and this parameter is provided, the service resolves the image using this identifier. Otherwise, the service falls back to matching based on `transactionDate` and `transactionImageNumber` as defined for deposit check image retrieval. **Not applicable** to statement‑based image types (`STATEMENT`, `CC_STATEMENT`, `DOCUMENT`); omit this parameter for those requests. schema: type: string example: dI1CloDSI6TtmsVo2AtPvRhoLL9MPABNsVKMuGtmFdE BankingImagesTransactionDate: name: transactionDate in: query required: false x-conditionally-required: when: 'imageType is CHECK, DEPOSIT_SLIP, or DEPOSIT_CHECK' description: > Posted date (`YYYY-MM-DD`) of the **transaction** for which check, deposit slip, or deposit check images are requested. **Required** when `imageType` is `CHECK`, `DEPOSIT_SLIP`, or `DEPOSIT_CHECK`. The value must be present and parseable. The service retrieves host transactions for the specified account on the given calendar date and resolves the image using `transactionImageNumber` and/or `imageIdentifier`, depending on the image type and institution configuration. The service validates the date against the institution’s configured image retention and expiration policies. When identifier‑based check matching is enabled, this date is still used to scope the host transaction lookup. **Not applicable** to statement‑based image types (`STATEMENT`, `CC_STATEMENT`, `DOCUMENT`); omit this parameter for those requests. schema: type: string format: date example: '2021-01-01' OpenApiLoginIdQueryParam: name: loginId in: query required: true description: Login ID of the user. schema: type: string example: user.login@example.com DisclosuresInstitutionCustomerId: name: institutionCustomerId in: query required: false description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 8fe733f4e27246908f92e8f7c0b96847 UserDisclosuresInstitutionCustomerId: name: institutionCustomerId in: query required: false description: > Identifies the institution customer (business location) whose accounts should be returned. This parameter is applicable to Business Banking users with access to multiple locations. When provided, results are limited to accounts associated with the specified institution customer. schema: type: string example: 8fe733f4e27246908f92e8f7c0b96847 GroupId: name: groupId in: path required: true description: Unique identifier of the experience group. schema: type: string format: uuid example: 482cf7f8-3e59-4ccf-a996-97c79fd50cb1 MxPlatformExtHost: name: ext_host in: header required: true description: > Specifies the MX Platform upstream host for gateway routing. This header is removed before the request is forwarded to MX. Use `api.mx.com` for production or `int-api.mx.com` for sandbox environments. schema: type: string example: api.mx.com MxPlatformAccept: name: Accept in: header required: true description: > Specifies the MX Platform vendor media type. Forwarded to MX without modification. Supported values include `application/vnd.mx.api.v1+json` and `application/json`. schema: type: string example: application/vnd.mx.api.v1+json MxPlatformAcceptVersion: name: Accept-Version in: header required: false description: > Specifies the MX Platform API version for content negotiation. Forwarded to MX without modification. Supported values include `v20250224` and `v20111101`. schema: type: string example: v20250224 MxPlatformContentType: name: Content-Type in: header required: false description: > Specifies the MX Platform media type for POST and PUT request payloads. Forwarded to MX without modification. schema: type: string example: application/json MxPlatformResourcePath: name: mxPlatformResourcePath in: path required: true description: > Specifies the MX Platform resource path appended after `/mx/`. Include the path segments, URL extension, and any query parameters defined for the target endpoint in the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api) documentation. For example, listing users maps to `/mx/users`, reading a user maps to `/mx/users/{user_guid}`, and listing accounts for a user maps to `/mx/users/{user_guid}/accounts`. schema: type: string example: users MxRealTimeExtHost: name: ext_host in: header required: true description: > Specifies the MX Real Time upstream host for gateway routing. This header is removed before the request is forwarded to MX. Use `live.moneydesktop.com` for production or `int-live.moneydesktop.com` for sandbox environments. schema: type: string example: live.moneydesktop.com MxRealTimeAccept: name: Accept in: header required: true description: > Specifies the MX Real Time vendor media type. Forwarded to MX without modification. Supported values include `application/vnd.moneydesktop.mdx.v5+json` and `application/vnd.moneydesktop.mdx.v5+xml`. schema: type: string example: application/vnd.moneydesktop.mdx.v5+json MxRealTimeContentType: name: Content-Type in: header required: false description: > Specifies the MX Real Time vendor media type for POST and PUT request payloads. Forwarded to MX without modification. schema: type: string example: application/vnd.moneydesktop.mdx.v5+json MxRealTimeInstitutionId: name: institutionId in: path required: true description: > Unique identifier of the financial institution, used as the MX `client_id` path segment when forwarding requests to MX. schema: type: string example: '00016' MxRealTimeResourcePath: name: mxRealTimeResourcePath in: path required: true description: > Specifies the MX Real Time resource path appended after `/mx/{institutionId}/`. Include the path segments, URL extension, and any query parameters defined for the target endpoint in the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/) documentation. For example, creating a user maps to `/mx/{institutionId}/users`, creating a member maps to `/mx/{institutionId}/users/{user_id}/members`, and creating an account maps to `/mx/{institutionId}/users/{user_id}/members/{member_id}/accounts`. schema: type: string example: users/u-c0a82a26002900a8554be794095c3e00 MxReportingExtHost: name: ext_host in: header required: true description: > Specifies the MX Reporting upstream host for gateway routing. This header is removed before the request is forwarded to MX. Use `logs.moneydesktop.com` for production or `int-logs.moneydesktop.com` for sandbox environments. schema: type: string example: logs.moneydesktop.com MxReportingAccept: name: Accept in: header required: true description: > Specifies the MX Reporting vendor media type. Forwarded to MX without modification. Use `application/vnd.mx.logs.v1+avro` to request **Avro**-encoded daily change and snapshot files. schema: type: string example: application/vnd.mx.logs.v1+avro MxReportingResourcePath: name: mxReportingResourcePath in: path required: true description: > Specifies the MX Reporting resource path appended after `/mx/`. Include the path segments, URL extension, and any query parameters defined for the target endpoint in the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/) documentation. `client_id` is replaced with `institutionId` in the path segment. `institutionId` is the financial institution identifier, used as the MX `client_id` path segment when forwarding requests to MX, and must match the identifier in the OAuth V2 access token. For example, downloading daily files maps to `/mx/download/{institutionId}/{date}/{resource_type}/{action}` and downloading snapshots maps to `/mx/snapshot/{institutionId}/{snapshot_guid}/{file_name}`. schema: type: string example: download/00016/2026-04-09/transactions/created MxSsoExtHost: name: ext_host in: header required: true description: > Specifies the MX SSO upstream host for gateway routing. This header is removed before the request is forwarded to MX. Use `sso.moneydesktop.com` for production or `int-sso.moneydesktop.com` for sandbox environments. schema: type: string example: sso.moneydesktop.com MxSsoAccept: name: Accept in: header required: true description: > Specifies the MX SSO vendor media type. Forwarded to MX without modification. Supported values include `application/vnd.moneydesktop.sso.v3+json` and `application/vnd.moneydesktop.sso.v3+xml`. schema: type: string example: application/vnd.moneydesktop.sso.v3+json MxSsoContentType: name: Content-Type in: header required: false description: > Specifies the MX SSO vendor media type for POST and PUT request payloads. Forwarded to MX without modification. schema: type: string example: application/json MxSsoInstitutionId: name: institutionId in: path required: true description: > Unique identifier of the financial institution, used as the MX `client_id` path segment when forwarding requests to MX. schema: type: string example: '00016' MxSsoResourcePath: name: mxSsoResourcePath in: path required: true description: > Specifies the MX SSO resource path appended after `/mx/{institutionId}/`. Include the path segments, URL extension, and any query parameters defined for the target endpoint in the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/) documentation. For example, retrieving API tokens maps to `/mx/{institutionId}/users/{id}/urls`, and retrieving a widget URL without configuration options maps to `/mx/{institutionId}/users/{id}/urls/{type}`. schema: type: string example: users/u-c0a82a26002900a8554be794095c3e00/urls/mini_budgets_widget responses: BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90007 message: Invalid grant type Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90001 message: Client not authorized to access this resource Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90006 message: Not authorized to access this resource InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90000 message: Internal server error AuthCodeBadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90005 message: Header institutionId is invalid AuthCodeUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90004 message: Invalid credentials AuthCodeForbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90009 message: Access blocked AuthCodeInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90000 message: Internal server error BadRequest1: description: >- The request is malformed or contains invalid parameters. Check the `accountId`, `hostUserId`, or other query inputs for correctness. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized1: description: >- Authentication failed. The request lacks valid credentials or the OAuth 2.0 Bearer token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' Forbidden1: description: >- The authenticated user does not have permission to access the requested resource. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested user or account ID cannot be found within the system. content: application/json: schema: $ref: '#/components/schemas/Error' InternalServerError1: description: >- An unexpected error occurred on the server. Please try again later or contact support if the issue persists. content: application/json: schema: $ref: '#/components/schemas/Error' InstitutionUsersError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ISR_10000 message: InstitutionId is invalid or its incorrectly configured InstitutionUsersError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ISR_11001 message: Full authentication was not provided in the request InstitutionUsersError403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ISR_11003 message: The authentication provided does not authorize this request InstitutionUsersError404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ISR_10001 message: InstitutionUser not found InstitutionUsersError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ISR_99999 message: Internal server error AccountsError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_00011 message: Validation Error AccountsError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_00601 message: Invalid JWT token AccountsError403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_00602 message: Unauthorized access AccountsError404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_00101 message: User not found AccountsError415: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_99988 message: >- Server can only handle JSON request. Other media types are not supported AccountsError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: ACC_99999 message: Error in Accounts Service BankingImagesError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_00003 message: >- The date provided could not be parsed or represented an invalid date. BankingImagesError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_10001 message: Full authentication was not provided in the request. BankingImagesError403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_10003 message: The authentication provided does not authorize this request. BankingImagesError404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_20008 message: No transaction found for the requested image. BankingImagesError415: description: Unsupported Media Type content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_99988 message: >- Server can only handle JSON request. Other media types are not supported BankingImagesError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: BIS_99999 message: Server error. Banking images request could not be completed. BadRequestBody: description: > Bad Request - Invalid request body (e.g. missing or invalid deliveryDate, accountNumber, paymentType, or other required fields). Used by POST create payment APIs. Open API validation uses BBP-126 through BBP-185 (see examples); BBP-131 and BBP-132 are documented under 401 Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error2' examples: invalidInstitutionId: summary: InvalidInstitutionId value: code: BBP-126 message: Invalid institution Id details: [] invalidBusinessId: summary: InvalidBusinessId value: code: BBP-127 message: Invalid business Id details: [] invalidLoginId: summary: InvalidLoginId value: code: BBP-128 message: Invalid login Id details: [] invalidSecCode: summary: InvalidSecCode value: code: BBP-129 message: Invalid SEC code details: [] invalidTransaction: summary: InvalidTransaction value: code: BBP-130 message: Invalid transaction details: [] badRequest: summary: BadRequest value: code: BBP-133 message: Bad request details: [] invalidUser: summary: InvalidUserUserNotFoundInSystem value: code: BBP-135 message: Invalid User. User not found in System details: [] invalidPaymentType: summary: InvalidPaymentType value: code: BBP-136 message: Invalid payment type details: [] invalidPaymentStatus: summary: InvalidPaymentStatus value: code: BBP-137 message: Invalid payment status details: [] invalidPayment: summary: InvalidPayment value: code: BBP-138 message: Invalid payment details: [] invalidAchPaymentDescription: summary: InvalidAchPaymentDescription value: code: BBP-139 message: Invalid ACH payment description details: [] invalidPaymentAmount: summary: InvalidPaymentAmount value: code: BBP-140 message: Invalid payment amount details: [] invalidAchCompanyId: summary: InvalidAchCompanyId value: code: BBP-141 message: Invalid ACH CompanyId details: [] invalidCurrencyCode: summary: InvalidCurrencyCode value: code: BBP-142 message: Invalid currency code details: [] invalidTransactionType: summary: InvalidTransactionType value: code: BBP-143 message: Invalid transaction type details: [] invalidAccountType: summary: InvalidAccountType value: code: BBP-144 message: Invalid account type details: [] invalidRoutingNumber: summary: InvalidRoutingNumber value: code: BBP-145 message: Invalid routing number details: [] invalidContactName: summary: InvalidContactName value: code: BBP-146 message: Invalid contact name details: [] invalidContactAccountNumber: summary: InvalidContactAccountNumber value: code: BBP-147 message: Invalid contact account number details: [] invalidOriginatorAccountNumber: summary: InvalidOriginatorAccountNumber value: code: BBP-148 message: Invalid originator account number details: [] invalidAddenda: summary: InvalidAddenda value: code: BBP-149 message: Invalid addenda details: [] invalidContactIdentificationNumber: summary: InvalidContactIdentificationNumber value: code: BBP-150 message: Invalid contact identification number details: [] invalidDeliveryDate: summary: InvalidDeliveryDate value: code: BBP-151 message: Invalid delivery date details: [] invalidHeaderValue: summary: InvalidHeaderValueForRequest value: code: BBP-152 message: Invalid header value for request. details: [] invalidContactBankName: summary: InvalidContactBankName value: code: BBP-153 message: Invalid contact bank name details: [] invalidBeneficiaryDetails: summary: InvalidBeneficiaryDetails value: code: BBP-154 message: Invalid beneficiary details details: [] invalidBeneficiaryName: summary: InvalidBeneficiaryName value: code: BBP-155 message: Invalid beneficiary name details: [] invalidBeneficiaryAddress: summary: InvalidBeneficiaryAddress value: code: BBP-156 message: Invalid beneficiary address details: [] invalidBeneficiaryAddressStreet: summary: InvalidBeneficiaryAddressStreet value: code: BBP-157 message: Invalid beneficiary address street details: [] invalidBeneficiaryAddressCity: summary: InvalidBeneficiaryAddressCity value: code: BBP-158 message: Invalid beneficiary address city details: [] invalidBeneficiaryAddressState: summary: InvalidBeneficiaryAddressState value: code: BBP-159 message: Invalid beneficiary address state details: [] invalidBeneficiaryAddressZipCode: summary: InvalidBeneficiaryAddressZipCode value: code: BBP-160 message: Invalid beneficiary address zip code details: [] invalidBeneficiaryAddressCountry: summary: InvalidBeneficiaryAddressCountry value: code: BBP-161 message: Invalid beneficiary address country details: [] invalidPurposeOfWire: summary: InvalidPurposeOfWire value: code: BBP-162 message: Invalid purpose of wire details: [] invalidBeneficiaryAccountNumber: summary: InvalidBeneficiaryAccountNumber value: code: BBP-163 message: Invalid beneficiary account number details: [] invalidBeneficiaryInstructions: summary: InvalidBeneficiaryInstructions value: code: BBP-164 message: Invalid beneficiary instructions details: [] invalidBeneficiaryBankDetails: summary: InvalidBeneficiaryBankDetails value: code: BBP-165 message: Invalid beneficiary bank details details: [] invalidBeneficiaryBankName: summary: InvalidBeneficiaryBankName value: code: BBP-166 message: Invalid beneficiary bank name details: [] invalidBeneficiaryBankRoutingNumber: summary: InvalidBeneficiaryBankRoutingNumber value: code: BBP-167 message: Invalid beneficiary bank routing number details: [] invalidBeneficiaryBankSwiftNumber: summary: InvalidBeneficiaryBankSwiftNumber value: code: BBP-168 message: Invalid beneficiary bank SWIFT number details: [] invalidBeneficiaryBankAccountNumber: summary: InvalidBeneficiaryBankAccountNumber value: code: BBP-169 message: Invalid beneficiary bank account number details: [] invalidBeneficiaryBankInstructions: summary: InvalidBeneficiaryBankInstructions value: code: BBP-170 message: Invalid beneficiary bank instructions details: [] invalidBeneficiaryBankAddress1: summary: InvalidBeneficiaryBankAddress1 value: code: BBP-171 message: Invalid beneficiary bank address 1 details: [] invalidBeneficiaryBankAddress2: summary: InvalidBeneficiaryBankAddress2 value: code: BBP-172 message: Invalid beneficiary bank address 2 details: [] invalidBeneficiaryBankCity: summary: InvalidBeneficiaryBankCity value: code: BBP-173 message: Invalid beneficiary bank address city details: [] invalidBeneficiaryBankState: summary: InvalidBeneficiaryBankState value: code: BBP-174 message: Invalid beneficiary bank address state details: [] invalidBeneficiaryBankZipCode: summary: InvalidBeneficiaryBankZipCode value: code: BBP-175 message: Invalid beneficiary bank address zip code details: [] invalidBeneficiaryBankCountry: summary: InvalidBeneficiaryBankCountry value: code: BBP-176 message: Invalid beneficiary bank address country details: [] invalidIntermediaryBankDetails: summary: InvalidIntermediaryBankDetails value: code: BBP-177 message: Invalid intermediary bank details details: [] invalidIntermediaryBankType: summary: InvalidIntermediaryBankType value: code: BBP-178 message: Invalid intermediary bank type details: [] invalidIntermediaryBankAccountNumber: summary: InvalidIntermediaryBankAccountNumber value: code: BBP-179 message: Invalid intermediary bank account number details: [] invalidIntermediaryBankName: summary: InvalidIntermediaryBankName value: code: BBP-180 message: Invalid intermediary bank name details: [] invalidIntermediaryBankRoutingNumber: summary: InvalidIntermediaryBankRoutingNumber value: code: BBP-181 message: Invalid intermediary bank routing number details: [] invalidIntermediaryBankSwiftNumber: summary: InvalidIntermediaryBankSwiftNumber value: code: BBP-182 message: Invalid intermediary bank SWIFT number details: [] invalidForeignCurrencyAmount: summary: InvalidForeignCurrencyAmount value: code: BBP-183 message: Invalid foreign currency amount details: [] invalidSendInForeignCurrency: summary: InvalidSendInForeignCurrency value: code: BBP-184 message: Invalid send in foreign currency details: [] invalidPaymentName: summary: InvalidPaymentName value: code: BBP-185 message: Invalid payment name details: [] BadRequestQueryParams: description: >- Bad Request - Invalid or missing query parameters. Used by GET list APIs (GET /v1/ach-payments, GET /v1/wire-payments). Query parameters are required; fromDate and toDate (YYYY-MM-DD) must be provided. Date range may not exceed 30 days. content: application/json: schema: $ref: '#/components/schemas/Error2' examples: missingQueryParams: summary: BadRequestInvalidOrMissingQueryParameters value: code: BBP-133 message: Bad request details: [] missingFromDateToDate: summary: QueryParametersFromDateToDateAreRequired value: code: BBP-133 message: 'Query parameters (fromDate, toDate) are required' details: [] BadRequestPaymentId: description: >- Bad Request (400) - Missing or invalid path parameter. BBP-133. Used by GET payment by ID; paymentId required. content: application/json: schema: $ref: '#/components/schemas/Error2' examples: paymentIdRequired: summary: BadRequestMissingOrInvalidPaymentId value: code: BBP-133 message: Missing or invalid payment id details: [] Unauthorized2: description: >- Unauthorized (401) - Invalid or expired JWT, or invalid role. BBP-131, BBP-132. content: application/json: schema: $ref: '#/components/schemas/Error2' examples: invalidJwt: summary: InvalidJwt value: code: BBP-131 message: Invalid JWT details: [] invalidRole: summary: InvalidRole value: code: BBP-132 message: Invalid role details: [] Forbidden2: description: >- Forbidden (403) - Authenticated but not allowed to perform this action (e.g. method not allowed). Representative code PAYMENTS-WEB015. content: application/json: schema: $ref: '#/components/schemas/Error2' example: code: PAYMENTS-WEB015 message: Method not allowed. details: [] NotFound1: description: Not Found (404) - No payment exists for the given paymentId. BBP-134. content: application/json: schema: $ref: '#/components/schemas/Error2' examples: noRecordExists: summary: NoRecordExistsForTheId value: code: BBP-134 message: No record exists for the id details: [] InternalServerError2: description: Internal Server Error (500) - Unexpected server error. content: application/json: schema: $ref: '#/components/schemas/Error2' example: code: PAYMENTS-GEN001 message: An unexpected server error occurred. Please try again. details: [] DisclosuresError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_10009 message: Invalid query param. DisclosuresError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_11001 message: Full authentication was not provided in the request. DisclosuresError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_23002 message: Error interacting with CBS Service DisclosuresError501: description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_10003 message: Invalid operation. UserDisclosuresError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_10009 message: Invalid query param. UserDisclosuresError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_11001 message: Full authentication was not provided in the request. UserDisclosuresError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_23002 message: Error interacting with CBS Service UserDisclosuresError501: description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: DSC_10003 message: Invalid operation. ExperienceGroupsError400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequest: summary: BadRequest description: > Example response when the request is invalid (for example, an invalid `groupId`). value: code: '2000' message: 'invalid groupId {groupId}' ExperienceGroupsError401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: summary: Unauthorized description: > Example response when the Authorization header is missing or invalid. value: code: '2003' message: Invalid Authorization ExperienceGroupsError500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: summary: InternalServerError description: | Example response when an unexpected server error occurs. value: code: '2001' message: additional details may be available in server logs MxPlatformResponseBody: description: > Response payload returned by the target MX Platform endpoint. Refer to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api) documentation for supported schemas and examples. content: application/vnd.mx.api.v1+json: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX Platform endpoint (JSON format). additionalProperties: true application/json: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX Platform endpoint (JSON format). additionalProperties: true MxPlatformBadRequest: description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/MxPlatformError' example: code: CMN_90008 message: Header correlationId is invalid application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformUnauthorized: description: Unauthorized content: application/json: schema: oneOf: - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/MxPlatformError' example: code: CMN_90001 message: Client not authorized to access this resource application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformForbidden: description: Forbidden content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformNotFound: description: Not Found content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformMethodNotAllowed: description: Method Not Allowed content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformNotAcceptable: description: Not Acceptable content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformConflict: description: Conflict content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformUnprocessableEntity: description: Unprocessable Entity content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformTooManyRequests: description: Too Many Requests content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformInternalServerError: description: Internal Server Error content: application/json: schema: oneOf: - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/MxPlatformError' example: code: CMN_90000 message: Internal server error application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformBadGateway: description: Bad Gateway content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformServiceUnavailable: description: Service Unavailable content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxPlatformGatewayTimeout: description: Gateway Timeout content: application/vnd.mx.api.v1+json: schema: $ref: '#/components/schemas/MxPlatformError' application/json: schema: $ref: '#/components/schemas/MxPlatformError' MxRealTimeResponseBody: description: > Response payload returned by the target MX Real Time endpoint. Refer to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/) documentation for supported schemas and examples. content: application/vnd.moneydesktop.mdx.v5+json: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX Real Time endpoint (JSON format). additionalProperties: true application/vnd.moneydesktop.mdx.v5+xml: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX Real Time endpoint (XML format). additionalProperties: true MxRealTimeBadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90008 message: Header correlationId is invalid application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90001 message: Client not authorized to access this resource application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeForbidden: description: Forbidden content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeNotFound: description: Not Found content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeConflict: description: Conflict content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeUnprocessableEntity: description: Unprocessable Entity content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeTooManyRequests: description: Too Many Requests content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90000 message: Internal server error application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeBadGateway: description: Bad Gateway content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeServiceUnavailable: description: Service Unavailable content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxRealTimeGatewayTimeout: description: Gateway Timeout content: application/vnd.moneydesktop.mdx.v5+json: schema: $ref: '#/components/schemas/MxRealTimeError' application/vnd.moneydesktop.mdx.v5+xml: schema: $ref: '#/components/schemas/MxRealTimeError' MxReportingAvroResponse: description: > Avro-encoded file returned by the target MX Reporting endpoint without modification. The file includes an embedded writer schema. For daily change files, records reflect object changes for the requested date, resource type, and action. If no data exists for the specified day, MX returns an Avro file containing headers only, with no data records. Refer to the [MX Reporting APIs](https://docs.mx.com/api-reference/more-apis/reporting/) documentation for supported schemas and examples. content: application/vnd.mx.logs.v1+avro: schema: type: string format: binary description: > Self-describing Avro file stream. Parse the embedded schema with each download to support schema evolution (for example, handling new fields added by MX). MxReportingBadRequest: description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/MxReportingError' example: code: CMN_90008 message: Header correlationId is invalid MxReportingUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90001 message: Client not authorized to access this resource MxReportingForbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingNotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingGone: description: Gone content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingTooManyRequests: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingInternalServerError: description: Internal Server Error content: application/json: schema: oneOf: - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/MxReportingError' example: code: CMN_90000 message: Internal server error MxReportingBadGateway: description: Bad Gateway content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingServiceUnavailable: description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxReportingGatewayTimeout: description: Gateway Timeout content: application/json: schema: $ref: '#/components/schemas/MxReportingError' MxSsoResponseBody: description: > Response payload returned by the target MX SSO endpoint. Refer to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/) documentation for supported schemas and examples. content: application/vnd.moneydesktop.sso.v3+json: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX SSO endpoint (JSON format). additionalProperties: true application/vnd.moneydesktop.sso.v3+xml: schema: type: object description: > Returned from MX without modification. The structure is defined by the target MX SSO endpoint (XML format). additionalProperties: true MxSsoBadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90008 message: Header correlationId is invalid application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90001 message: Client not authorized to access this resource application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoForbidden: description: Forbidden content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoNotFound: description: Not Found content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoTooManyRequests: description: Too Many Requests content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoInternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: CMN_90000 message: Internal server error application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoBadGateway: description: Bad Gateway content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoServiceUnavailable: description: Service Unavailable content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' MxSsoGatewayTimeout: description: Gateway Timeout content: application/vnd.moneydesktop.sso.v3+json: schema: $ref: '#/components/schemas/MxSsoError' application/vnd.moneydesktop.sso.v3+xml: schema: $ref: '#/components/schemas/MxSsoError' securitySchemes: ClientAuthBasic: type: http scheme: basic description: HTTP Basic Authentication using client ID and client secret. examples: EStatementPreferencesRequestExample: summary: EStatementPreferencesRequest value: activateEstatement: true BadRequestExample: summary: Bad Request value: status: 400 message: Required Correlation Id header is missing. code: UXESTMT_10007 UnauthorizedExample: summary: Unauthorized value: status: 401 message: User is not authorized to perform this operation. ForbiddenExample: summary: Forbidden value: status: 403 message: User does not have access. NotFoundExample: summary: Not Found value: status: 404 message: No entitled customers found. code: UXESTMT_88888 InternalServerErrorExample: summary: Internal server error value: status: 500 message: Error interacting with the service. code: UXESTMT_30001 requestBodies: AlertTemplateResource: content: application/json: schema: $ref: '#/components/schemas/AlertTemplateResource' description: template required: true AlertTypeResource: content: application/json: schema: $ref: '#/components/schemas/AlertTypeResource' description: alertTypeResource required: true InstitutionAlertTypeResource: content: application/json: schema: $ref: '#/components/schemas/InstitutionAlertTypeResource' description: fiAlertTypeResource required: true MxPlatformRequestBody: required: true description: > Request payload defined by the target MX Platform endpoint. Refer to the [MX Platform APIs v20250224](https://docs.mx.com/api-reference/platform-api/reference/mx-platform-api) and [MX Platform APIs v20111101](https://docs.mx.com/api-reference/platform-api/v20111101/reference/mx-platform-api) documentation for supported schemas and examples. content: application/vnd.mx.api.v1+json: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX Platform endpoint (JSON format). additionalProperties: true application/json: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX Platform endpoint (JSON format). additionalProperties: true MxRealTimeRequestBody: required: true description: > Request payload defined by the target MX Real Time endpoint. Refer to the [MX Real Time APIs](https://docs.mx.com/api-reference/more-apis/mdx/mdx-real-time/) documentation for supported schemas and examples. content: application/vnd.moneydesktop.mdx.v5+json: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX Real Time endpoint (JSON format). additionalProperties: true application/vnd.moneydesktop.mdx.v5+xml: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX Real Time endpoint (XML format). additionalProperties: true MxSsoRequestBody: required: true description: > Request payload defined by the target MX SSO endpoint. Refer to the [MX SSO APIs](https://docs.mx.com/api-reference/sso/v3/) documentation for supported schemas and examples. content: application/vnd.moneydesktop.sso.v3+json: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX SSO endpoint (JSON format). additionalProperties: true application/vnd.moneydesktop.sso.v3+xml: schema: type: object description: > Forwarded to MX without modification. The structure is defined by the target MX SSO endpoint (XML format). additionalProperties: true x-tagGroups: - name: Authentication tags: - OAuth V1 - OAuth V2 - name: Customer Management tags: - Registration And Access - Profile And Status - Contact Info - name: Core Banking tags: - Accounts - Transactions - Banking Activities - Images - name: Business Banking tags: - Registration - Profile - Entitlements - Payments - name: Money Movement tags: - Recipients - Transfers - name: Alerts And Notifications tags: - System Alerts - Institution Alerts - Templates - Institution Preferences - User Preferences - Notification Channels - History And Events - name: Documents And Preferences tags: - Institution Disclosures - User Disclosures - Electronic Statements - name: Customer Campaigns tags: - Experience Groups - Jobs - Promotions Suite - Audience - name: MX tags: - MX Platform - Real Time - Reporting - SSO