MX Technologies members API
The members API from MX Technologies — 20 operation(s) for members.
The members API from MX Technologies — 20 operation(s) for members.
openapi: 3.0.0
info:
contact:
name: MX Platform API
url: https://www.mx.com/products/platform-api
description: 'The MX Platform API is a powerful, fully-featured API designed to make aggregating and enhancing financial data easy and reliable. It can seamlessly connect your app or website to tens of thousands of financial institutions.
Just getting started? See our [use case guides](/use-cases/).
'
title: MX Platform accounts members API
version: '20111101'
servers:
- url: https://int-api.mx.com
- url: https://api.mx.com
security:
- basicAuth: []
tags:
- name: members
paths:
/users/{user_guid}/members:
get:
description: This endpoint returns an array which contains information on every member associated with a specific user.
operationId: listMembers
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/useCase'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MembersResponseBody'
description: OK
summary: List members
tags:
- members
post:
description: This endpoint allows you to create a new member. Members are created with the required parameters credentials and institution_code, and the optional parameters id and metadata. When creating a member, youll need to include the correct type of credential required by the financial institution and provided by the user. You can find out which credential type is required with the `/institutions/{institution_code}/credentials` endpoint. If successful, the MX Platform API will respond with the newly-created member object. Once you successfully create a member, MX will immediately validate the provided credentials and attempt to aggregate data for accounts and transactions.
operationId: createMember
parameters:
- $ref: '#/components/parameters/xCallback'
- $ref: '#/components/parameters/userGuid'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCreateRequestBody'
description: Member object to be created with optional parameters (id and metadata) and required parameters (credentials and institution_code)
required: true
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Create member
tags:
- members
/users/{user_guid}/members/{member_guid}:
delete:
description: Accessing this endpoint will permanently delete a member.
operationId: deleteMember
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'204':
description: No Content
summary: Delete member
tags:
- members
get:
description: Use this endpoint to read the attributes of a specific member.
operationId: readMember
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Read member
tags:
- members
put:
description: Use this endpoint to update a members attributes. Only the credentials, id, and metadata parameters can be updated. To get a list of the required credentials for the member, use the list member credentials endpoint.
operationId: updateMember
parameters:
- $ref: '#/components/parameters/xCallback'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberUpdateRequestBody'
description: Member object to be updated (While no single parameter is required, the request body can't be empty)
required: true
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Update member
tags:
- members
/users/{user_guid}/members/{member_guid}/aggregate:
post:
description: Calling this endpoint initiates an aggregation event for the member. This brings in the latest account and transaction data from the connected institution. If this data has recently been updated, MX may not initiate an aggregation event.
operationId: aggregateMember
parameters:
- $ref: '#/components/parameters/xCallback'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/include_holdings'
- $ref: '#/components/parameters/include_transactions'
responses:
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Aggregate member
tags:
- members
/users/{user_guid}/members/{member_guid}/challenges:
get:
description: Use this endpoint for information on what multi-factor authentication challenges need to be answered in order to aggregate a member. If the aggregation is not challenged, i.e., the member does not have a connection status of `CHALLENGED`, then code `204 No Content` will be returned. If the aggregation has been challenged, i.e., the member does have a connection status of `CHALLENGED`, then code `200 OK` will be returned - along with the corresponding credentials.
operationId: listMemberChallenges
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/ChallengesResponseBody'
description: OK
summary: List member challenges
tags:
- members
/users/{user_guid}/members/{member_guid}/check_balance:
post:
description: This endpoint operates much like the aggregate member endpoint except that it gathers only account balance information; it does not gather any transaction data.
operationId: checkBalances
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Check balances
tags:
- members
/users/{user_guid}/members/{member_guid}/credentials:
get:
description: This endpoint returns an array which contains information on every non-MFA credential associated with a specific member.
operationId: listMemberCredentials
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CredentialsResponseBody'
description: OK
summary: List member credentials
tags:
- members
/users/{user_guid}/members/{member_guid}/identify:
post:
description: The identify endpoint begins an identification process for an already-existing member.
operationId: identifyMember
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Identify member
tags:
- members
/users/{user_guid}/members/{member_guid}/resume:
put:
description: This endpoint answers the challenges needed when a member has been challenged by multi-factor authentication.
operationId: resumeAggregation
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResumeRequestBody'
description: Member object with MFA challenge answers
required: true
responses:
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Resume aggregation
tags:
- members
/users/{user_guid}/members/{member_guid}/status:
get:
description: This endpoint provides the status of the members most recent aggregation event. This is an important step in the aggregation process, and the results returned by this endpoint should determine what you do next in order to successfully aggregate a member. MX has introduced new, more detailed information on the current status of a members connection to a financial institution and the state of its aggregation - the connection_status field. These are intended to replace and expand upon the information provided in the status field, which will soon be deprecated; support for the status field remains for the time being.
operationId: readMemberStatus
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberStatusResponseBody'
description: OK
summary: Read member status
tags:
- members
/users/{user_guid}/members/{member_guid}/verify:
post:
description: The verify endpoint begins a verification process for a member.
operationId: verifyMember
parameters:
- $ref: '#/components/parameters/xCallback'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Verify member
tags:
- members
/users/{user_identifier}/members:
get:
description: This endpoint returns an array which contains information on every member associated with a specific user.
operationId: listMembers
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/useCase_2'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MembersResponseBody'
description: OK
summary: List members
tags:
- members
post:
description: This endpoint allows you to create a new member. Members are created with the required parameters credentials and institution_code, and the optional parameters id and metadata. When creating a member, you'll need to include the correct type of credential required by the financial institution and provided by the user. You can find out which credential type is required with the `/institutions/{institution_code}/credentials` endpoint. If successful, the MX Platform API will respond with the newly-created member object. Once you successfully create a member, MX will immediately validate the provided credentials and attempt to aggregate data for accounts and transactions.
operationId: createMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/xCallback_2'
- $ref: '#/components/parameters/userIdentifier'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCreateRequestBody_2'
description: Member object to be created with optional parameters (id and metadata) and required parameters (credentials and institution_code)
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Create member
tags:
- members
/users/{user_identifier}/members/{member_identifier}:
delete:
description: Accessing this endpoint will permanently delete a member.
operationId: deleteMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'204':
description: No Content
summary: Delete member
tags:
- members
get:
description: Use this endpoint to read the attributes of a specific member.
operationId: readMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Read member
tags:
- members
put:
description: Use this endpoint to update a members attributes. Only the credentials, id, and metadata parameters can be updated. To get a list of the required credentials for the member, use the list member credentials endpoint.
operationId: updateMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/xCallback_2'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberUpdateRequestBody'
description: Member object to be updated (While no single parameter is required, the request body can't be empty)
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Update member
tags:
- members
/users/{user_identifier}/members/{member_identifier}/aggregate:
post:
description: Calling this endpoint initiates an aggregation event for the member. This brings in the latest account and transaction data from the connected institution. If this data has recently been updated, MX may not initiate an aggregation event.
operationId: aggregateMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/xCallback_2'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Aggregate member
tags:
- members
/users/{user_identifier}/members/{member_identifier}/challenges:
get:
description: Use this endpoint for information on what multi-factor authentication challenges need to be answered in order to aggregate a member. If the aggregation is not challenged, i.e., the member does not have a connection status of `CHALLENGED`, then code `204 No Content` will be returned. If the aggregation has been challenged, i.e., the member does have a connection status of `CHALLENGED`, then code `200 OK` will be returned - along with the corresponding credentials.
operationId: listMemberChallenges
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengesResponseBody'
description: OK
summary: List member challenges
tags:
- members
/users/{user_identifier}/members/{member_identifier}/check_balance:
post:
description: This endpoint operates much like the aggregate member endpoint except that it gathers only account balance information; it does not gather any transaction data.
operationId: checkBalances
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Check balances
tags:
- members
/users/{user_identifier}/members/{member_identifier}/credentials:
get:
description: This endpoint returns an array which contains information on every non-MFA credential associated with a specific member.
operationId: listMemberCredentials
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CredentialsResponseBody'
description: OK
summary: List member credentials
tags:
- members
/users/{user_identifier}/members/{member_identifier}/identify:
post:
description: The identify endpoint begins an identification process for an already-existing member.
operationId: identifyMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Identify member
tags:
- members
/users/{user_identifier}/members/{member_identifier}/resume:
put:
description: This endpoint answers the challenges needed when a member has been challenged by multi-factor authentication.
operationId: resumeAggregation
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResumeRequestBody'
description: Member object with MFA challenge answers
required: true
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Resume aggregation
tags:
- members
/users/{user_identifier}/members/{member_identifier}/status:
get:
description: This endpoint provides the status of the members most recent aggregation event. The results returned by this endpoint should determine what you do next in order to successfully aggregate a member.
operationId: readMemberStatus
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberStatusResponseBody'
description: OK
summary: Read member status
tags:
- members
/users/{user_identifier}/members/{member_identifier}/verify:
post:
description: The verify endpoint begins a verification process for a member.
operationId: verifyMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/xCallback_2'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: OK
summary: Verify member
tags:
- members
components:
schemas:
MemberUpdateRequestBody:
properties:
member:
$ref: '#/components/schemas/MemberUpdateRequest'
type: object
MemberCreateRequest:
properties:
background_aggregation_is_disabled:
example: false
type: boolean
credentials:
items:
$ref: '#/components/schemas/CredentialRequest'
type: array
id:
example: unique_id
type: string
institution_code:
example: mxbank
type: string
is_oauth:
example: false
type: boolean
metadata:
example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
type: string
skip_aggregation:
example: false
type: boolean
use_cases:
type: array
description: The use case associated with the member. Valid values are `PFM` and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and have opted in to using this field.
items:
type: string
enum:
- MONEY_MOVEMENT
- PFM
example:
- PFM
required:
- credentials
- institution_code
type: object
MemberCreateRequest_2:
properties:
background_aggregation_is_disabled:
description: Indicates whether background aggregation is disabled for the `member`.
example: false
type: boolean
credentials:
items:
$ref: '#/components/schemas/CredentialRequest'
type: array
id:
description: The unique partner-defined identifier for the member.
example: unique_id
type: string
institution_code:
description: The code identifying a financial institution.
example: mxbank
type: string
is_oauth:
description: Indicates whether the member uses OAuth to authenticate. Defaults to `false`.
example: false
type: boolean
metadata:
description: Additional information you can store about the `member`.
example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
type: string
use_cases:
type: array
description: The use case associated with the member. Valid values are `PFM` and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and have opted in to using this field.
items:
type: string
enum:
- MONEY_MOVEMENT
- PFM
example:
- PFM
required:
- credentials
- institution_code
type: object
SupportedProducts:
type: string
enum:
- account_verification
- identity_verification
- transactions
- transaction_history
- statements
- investments
- rewards
ImageOptionResponse:
properties:
data_uri:
example: data:image/png;base64,iVBORw0KGgoAAAANSUh ... more image data ...
nullable: true
type: string
guid:
example: CRD-ce76d2e3-86bd-ec4a-ec52-eb53b5194bf5
nullable: true
type: string
label:
example: IMAGE_1
nullable: true
type: string
value:
example: image_data
nullable: true
type: string
type: object
PaginationResponse:
properties:
current_page:
example: 1
type: integer
per_page:
example: 25
type: integer
total_entries:
example: 1
type: integer
total_pages:
example: 1
type: integer
type: object
MemberResumeRequest:
properties:
challenges:
items:
$ref: '#/components/schemas/CredentialRequest'
type: array
type: object
MemberResponse:
properties:
aggregated_at:
example: '2016-10-13T18:07:57.000Z'
nullable: true
type: string
background_aggregation_is_disabled:
example: false
type: boolean
connection_status:
example: CONNECTED
nullable: true
type: string
connection_status_message:
example: Connected to MX Bank
nullable: true
type: string
guid:
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
nullable: true
type: string
id:
example: unique_id
nullable: true
type: string
institution_code:
example: mxbank
nullable: true
type: string
institution_guid:
example: INST-12345678-90ab-cdef-1234-567890abcdef
nullable: false
type: string
is_being_aggregated:
example: false
nullable: true
type: boolean
is_managed_by_user:
example: false
nullable: true
type: boolean
is_manual:
example: false
nullable: true
type: boolean
is_oauth:
example: false
nullable: true
type: boolean
metadata:
example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
nullable: true
type: string
most_recent_job_detail_code:
example: null
nullable: true
type: integer
most_recent_job_detail_text:
example: null
nullable: true
type: boolean
most_recent_job_guid:
example: JOB-12345678-90ab-cdef-1234-567890abcdef
nullable: true
type: boolean
name:
example: MX Bank
nullable: true
type: string
needs_updated_credentials:
example: false
nullable: true
type: boolean
oauth_window_uri:
example: https://mxbank.mx.com/oauth/authorize?client_id=b8OikQ4Ep3NuSUrQ13DdvFuwpNx-qqoAsJDVAQCyLkQ&redirect_uri=https%3A%2F%2Fint-app.moneydesktop.com%2Foauth%2Fredirect_from&response_type=code&scope=openid&state=d745bd4ee6f0f9c184757f574bcc2df2
nullable: true
type: string
successfully_aggregated_at:
example: '2016-10-13T17:57:38.000Z'
nullable: true
type: string
use_cases:
type: array
description: The use case associated with the member. Valid values are `PFM` and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and have opted in to using this field.
items:
type: string
enum:
- MONEY_MOVEMENT
- PFM
example:
- PFM
user_guid:
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
nullable: true
type: string
user_id:
example: user123
nullable: true
type: string
type: object
MemberStatusResponse:
properties:
aggregated_at:
example: '2016-10-13T18:07:57.000Z'
nullable: true
type: string
challenges:
items:
$ref: '#/components/schemas/ChallengeResponse'
type: array
connection_status:
example: CONNECTED
nullable: true
type: string
guid:
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
nullable: true
type: string
has_processed_account_numbers:
example: true
nullable: true
type: boolean
has_processed_accounts:
example: true
nullable: true
type: boolean
has_processed_transactions:
example: false
nullable: true
type: boolean
is_authenticated:
example: false
nullable: true
type: boolean
is_being_aggregated:
example: false
nullable: true
type: boolean
successfully_aggregated_at:
example: '2016-10-13T17:57:38.000Z'
nullable: true
type: string
type: object
OptionResponse:
properties:
guid:
example: CRD-ce76d2e3-86bd-ec4a-ec52-eb53b5194bf5
nullable: true
type: string
label:
example: IMAGE_1
nullable: true
type: string
value:
example: image_data
nullable: true
type: string
type: object
CredentialRequest:
properties:
guid:
example: CRD-27d0edb8-1d50-5b90-bcbc-be270ca42b9f
type: string
value:
example: password
type: string
type: object
MembersResponseBody:
properties:
members:
items:
$ref: '#/components/schemas/MemberResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
CredentialsResponseBody:
properties:
credentials:
items:
$ref: '#/components/schemas/CredentialResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
MemberCreateRequestBody_2:
properties:
client_redirect_url:
description: 'This determines the redirect destination at the end of OAuth when used with `is_mobile_webview: true` or `oauth_referral_source: ''APP''`.
'
example: https://{yoursite.com}
type: string
data_request:
type: object
$ref: '#/components/schemas/DataRequest'
enable_app2app:
example: false
type: boolean
description: 'This indicates whether OAuth app2app behavior is enabled for institutions that support it. Defaults to `true`. When set to `false`, any `oauth_window_uri` generated will **not** direct the end user to the institution''s mobile application. This setting is not persistent. This setting currently only affects Chase institutions.
'
member:
$ref: '#/components/schemas/Membe
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mx-technologies/refs/heads/main/openapi/mx-technologies-members-api-openapi.yml