Members
Members webhooks notify you when a member is created, updated, or deleted in the MX system for any user on that partner's client.
The X-CALLBACK-PAYLOAD header will appear if it was set in the Create Member or Update Member Platform API request that initiated this webhook.
| Field | Data Type | Definition |
|---|---|---|
aggregated_at | Integer | The date and time the most recent aggregation process was started. The process automatically starts when a member is created or its credentials are updated, unless the skip_aggregation parameter is used. Connections can also be started via manual aggregations, background aggregations, API endpoints, or when opening an MX widget. It can be a normal aggregation, or a different process such as identification, verification, fetching statements, or fetching an extended transaction history. If a member is deleted and then re-created with the skip_aggregation parameter set to true or if it is re-created within the throttle window (typically three hours), the previous value will be returned. |
connection_status_id | Integer | Indicates the state of a member's aggregation, provided as an integer. See member connection statuses for more information on possible values. |
connection_status_message | String | A message that can be displayed to the user to help them navigate the connection and aggregation process. |
connection_status | String | This indicates the state of a member’s aggregation, provided as a string. See member connection statuses for more information on possible values. |
created_at | Integer | The date and time at which the member was created. |
guid | String | The unique identifier for the member. Defined by MX. |
id | String | The unique partner-defined identifier for the member. |
institution_code | String | The unique identifier for the institution associated with the member. Defined by MX. |
institution_guid | String | The unique identifier for the institution the member belongs to. Defined by MX. |
is_being_aggregated | Boolean | This field will be true if the member is being aggregated at the time of the request. Otherwise, this field will be false. |
is_managed_by_user | Boolean | If the member is managed by the user this field will be true. Otherwise, the member is managed by the MX partner and this field will be false. |
is_manual | Boolean | If a member was manually created, this field will be true. Otherwise, this field will be false. |
is_oauth | Boolean | This indicates whether the member uses OAuth to authenticate. Defaults to false. |
is_user_created | Boolean | This field is deprecated. Webhook consumers should use is_managed_by_user instead. |
metadata | String | Additional information a partner can store on the member. |
most_recent_job_guid | String | The unique identifier for the most recent job. Defined by MX. |
name | String | Name of the given member. |
needs_updated_credentials | Boolean | Internal field used by MX in some circumstances. When true, MX will not attempt to aggregate the member. It will be set to false automatically when the member’s credentials are updated. |
revision | Integer | The revision number of this member record. |
successfully_aggregated_at | Integer | The date and time at which the account was last successfully aggregated. |
updated_at | Integer | The date and time at which the member was last updated. |
use_cases | Array | The use case associated with the member. Valid values are PFM and/or MONEY_MOVEMENT. To use this field, you must've met with MX and have opted in to using this field. For more info, see Member Use Cases. |
user_id | String | The unique partner-defined identifier for the user. |
Example Payload
_37POST /admin/webhooks_37HTTP/1.1_37content-type: application/json; charset=utf-8_37accept: application/json_37User-Agent: HTTPClient/1.0 (2.7.1, ruby 2.2.2_37(2015-09-02)) Date: Thu, 12 Jul 2017 04:26:04 GMT Content-Length: 231_37Host: abc.com_37_37{_37 "action": "updated",_37 "member": {_37 "aggregated_at": 1588007604,_37 "connection_status": "CONNECTED",_37 "connection_status_id": 6,_37 "connection_status_message": "Connected to Gringotts.",_37 "created_at": 1558116397,_37 "guid": "MBR-8a4bdc76-2b77-46f8-9e30-39f120e15bfe",_37 "institution_code": "gringotts",_37 "institution_guid": "INS-80230e9b-bfc3-d488-e606-1bf82f862406",_37 "id": null,_37 "is_being_aggregated": false,_37 "is_manual": false,_37 "is_managed_by_user": true,_37 "is_oauth": false,_37 "is_user_created": true,_37 "metadata": null,_37 "most_recent_job_guid": "JOB-5ce1788a-3f63-44b9-8642-d015b38b41c0",_37 "name": "Gringotts",_37 "needs_updated_credentials": false,_37 "successfully_aggregated_at": 1588007610,_37 "user_id": "u-1234567",_37 "revision": 5097,_37 "updated_at": 1588007610,_37 "use_cases": ["PFM"],_37 "user_guid": "USR-98bdfe3883-2b77-46f8-9e30-39f120e15bfe"_37 }_37}
Member Connection Statuses
| Integer Value | Status | Definition | Next Steps | End-User Message |
|---|---|---|---|---|
| null | null | The member exists but does not have credentials. A member that does not aggregate (e.g., a manual member) will always have this status. | None. | None. |
| 0 | CREATED | The member is new and has not yet been aggregated. | Aggregate the member once the end user logs in; poll for a status update. | Connecting to [...] ... |
| 1 | PREVENTED | MX is preventing aggregation until the member’s credentials have been updated. | Display end-user message; after end user has updated their credentials, aggregate again. | The last 3 attempts to connect have failed. Please re-enter your credentials to continue importing data. |
| 2 | DENIED | The credentials provided for the member were invalid. | Display end-user message; after end user has updated their credentials, aggregate again. | The credentials entered do not match your credentials at this institution. Please re-enter your credentials to continue importing data. |
| 3 | CHALLENGED | The member has been challenged by multi-factor authentication. | Display end-user message; follow MFA pathway; after the user answers MFA, poll for a status update. | To authenticate your connection to [...], please answer the following challenge(s). |
| 4 | REJECTED | An MFA challenge was answered incorrectly. | Display end-user message; another challenge may follow or aggregation may need to be restarted. | The answer or answers provided were incorrect. Please try again. |
| 5 | LOCKED | The financial institution is preventing authentication. The end user must contact the financial institution. | Display end-user message. | Your account is locked. Please log in to the appropriate website for [...] and follow the steps to resolve the issue. |
| 6 | CONNECTED | The member was successfully authenticated and data is now aggregating. | Display the account as having been connected. | Connected to [...] ... |
| 7 | IMPEDED | The end user’s attention is required at their online banking institution, e.g., there is a marketing message that must be viewed, terms and conditions that must be accepted, etc. | Display end-user message. | Your attention is needed at this institution's website. Please log in to the appropriate website for [...] and follow the steps to resolve the issue. |
| 8 | RECONNECTED | The member has been migrated to a new data source and aggregation is likely to trigger one-time password MFA. MX will not perform background aggregation in order to avoid unnecessarily disruptive texts, emails, etc. The member must be re-aggregated in the foreground with the end user present. | Aggregate the member once the end user logs in; poll for a status update. | Reconnecting to [...] ... |
| 9 | DEGRADED | Aggregation has failed at least three times within a short period of time. | Display end-user message. | We are upgrading this connection. Please try again later. |
| 10 | DISCONNECTED | Aggregation has failed at least three times and has not succeeded for at least two weeks. | Display end-user message. | It looks like your data from [...] cannot be imported. We are working to resolve the issue. |
| 11 | DISCONTINUED | The connection to this financial institution is no longer available. | Display end-user message. | Connections to this institution are no longer supported. You may create a manual account and use manual transactions to track data for this account. |
| 12 | CLOSED | The end user, MX, the client, or a partner has marked the member as closed. | Display end-user message. | This connection has been closed. You may track this account manually. If reopened, you may connect the institution again. |
| 13 | DELAYED | Aggregating the member has taken longer than expected and it has not yet been connected. | Display end-user message; poll for a status update. | Importing your data from [...] may take a while. Please check back later. |
| 14 | FAILED | Aggregation failed without being connected. | Display end-user message; try aggregating again later. | There was a problem validating your credentials with [...]. Please try again later. |
| 15 | UPDATED | The member has been updated — i.e., credentials have been updated — but it has not yet been connected. | Aggregate the member once the end user logs in; poll for a status update. | Connecting to [...] ... |
| 16 | DISABLED | Aggregation has been momentarily paused, but the member is still connected. | Display end-user message. | Importing data from this institution has been disabled. Please contact us if you believe it has been disabled in error. |
| 17 | IMPORTED | MX does not have credentials and will not try to aggregate the member until the end user provides credentials. | Display end-user message; re-aggregate after the end user updates credentials. | You must re-authenticate before your data can be imported. Please enter your credentials for [...]. |
| 18 | RESUMED | The answer to an MFA challenge was received, but it is not yet clear whether it was correct. | Poll for a status update. | Connecting to [...] ... |
| 19 | EXPIRED | The MFA answer was not provided within the time allotted by the financial institution. | Display end-user message; re-aggregate the member if the end user initiates it. | The answer or answers were not provided in time. Please try again. |
| 20 | IMPAIRED | The member is missing some or all credentials needed in order to connect. | Display end-user message; re-aggregate after the end user updates credentials. | You must re-authenticate before your data can be imported. Please enter your credentials for [...]. |
| 21 | PENDING | The member is using OAuth to authenticate credentials and still needs to go through the financial institution's OAuth process. A PENDING status will appear only on members less than one hour old with is_oauth: true. Members that stay PENDING longer than one hour will be deleted by MX. | Redirect the end user to the oauth_window_uri provided in the create member response, or request one through the generate OAuth window URI endpoint. | None. |
Member Data Updated
Member data updated webhooks notify you new transaction data is available for the member. It will include a count of new transactions and of updated transactions. This webhook fires only after a completed aggregation event; changes made directly using MX APIs (such as creating or modifying a transaction via Nexus, MDX Real Time, or Batch) will not trigger the webhook.
The X-CALLBACK-PAYLOAD header will appear if it was set in the Aggregate Member or Verify Member Platform API request that initiated this webhook.
| Field | Data Type | Description |
|---|---|---|
action | String | This field should always equal member_data_updated. |
completed_at | Integer | The time at which the aggregation that triggered the webhook was finished. |
completed_on | String | The date on which the aggregation that triggered the webhook was finished. |
is_background | Boolean | This indicates whether the aggregation was performed manually in the foreground or automatically in the background. |
job_guid | String | The unique identifier for the job. Defined by MX. |
member_guid | String | The unique identifier for the member which has new or updated transaction data. Defined by MX. |
transactions_created_count | Integer | The number of newly created transactions. |
transactions_updated_count | Integer | The number of newly updated transactions. |
type | String | The type of webhook being delivered. |
user_guid | String | The unique identifier for the user with which the data is associated. Defined by MX. |
user_id | String | The unique partner-defined identifier for the user associated with the aggregation. |
Example Payload
_13{_13 "action": "member_data_updated",_13 "completed_at": 1531947410,_13 "completed_on": "2018-07-18",_13 "is_background": true,_13 "job_guid": "JOB-823ab268-5107-4a67-97c8-60292572ac2e",_13 "member_guid": "MBR-48d9a481-f2a2-7e13-2685-62869cf0d33a",_13 "transactions_created_count": 3,_13 "transactions_updated_count": 2,_13 "type": "AGGREGATION",_13 "user_guid": "USR-eaf4ac68-d17d-5e9b-7b46-959a5b315a9e",_13 "user_id": "partner-defined-id"_13}