Skip to content

Latest commit

 

History

History
792 lines (590 loc) · 29.1 KB

MembersApi.md

File metadata and controls

792 lines (590 loc) · 29.1 KB

\MembersApi

Method HTTP request Description
AggregateMember Post /users/{user_guid}/members/{member_guid}/aggregate Aggregate member
AggregateMemberBalances Post /users/{user_guid}/members/{member_guid}/balance Aggregate member account balances
CreateMember Post /users/{user_guid}/members Create member
DeleteMember Delete /users/{user_guid}/members/{member_guid} Delete member
ExtendHistory Post /users/{user_guid}/members/{member_guid}/extend_history Extend history
ListMemberAccounts Get /users/{user_guid}/members/{member_guid}/accounts List member accounts
ListMemberCredentials Get /users/{user_guid}/members/{member_guid}/credentials List member credentials
ListMemberMFAChallenges Get /users/{user_guid}/members/{member_guid}/challenges List member MFA challenges
ListMemberTransactions Get /users/{user_guid}/members/{member_guid}/transactions List member transactions
ListMembers Get /users/{user_guid}/members List members
ReadMember Get /users/{user_guid}/members/{member_guid} Read member
ReadMemberStatus Get /users/{user_guid}/members/{member_guid}/status Read member connection status
ReadOAuthWindowURI Get /users/{user_guid}/members/{member_guid}/oauth_window_uri Read OAuth Window URI
ResumeMember Put /users/{user_guid}/members/{member_guid}/resume Resume aggregation from MFA
UpdateMember Put /users/{user_guid}/members/{member_guid} Update member

AggregateMember

MemberResponseBody AggregateMember(ctx, memberGUID, userGUID) Aggregate member

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.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.AggregateMember(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

AggregateMemberBalances

MemberResponseBody AggregateMemberBalances(ctx, memberGUID, userGUID) Aggregate member account balances

This endpoint operates much like the aggregate member endpoint except that it gathers only account balance information; it does not gather any transaction data at all.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.AggregateMemberBalances(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

CreateMember

MemberResponseBody CreateMember(ctx, userGUID, body) Create member

This endpoint allows you to create a new member. Members are created with the required parameters credentials and institution_code, and the optional parameters identifier 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, Atrium 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.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  body := atrium.MemberCreateRequestBody{} // MemberCreateRequestBody | Member object to be created with optional parameters (identifier and metadata) and required parameters (credentials and institution_code)

  response, _, err := client.Members.CreateMember(ctx, userGUID, body)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
userGUID string The unique identifier for a `user`.
body MemberCreateRequestBody Member object to be created with optional parameters (identifier and metadata) and required parameters (credentials and institution_code)

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

DeleteMember

DeleteMember(ctx, memberGUID, userGUID) Delete member

Accessing this endpoint will permanently delete a member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.DeleteMember(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

(empty response body)

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ExtendHistory

MemberResponseBody ExtendHistory(ctx, memberGUID, userGUID) Extend history

The extend_history endpoint begins the process of fetching up to 24 months of data associated with a particular member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.ExtendHistory(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ListMemberAccounts

AccountsResponseBody ListMemberAccounts(ctx, memberGUID, userGUID, optional) List member accounts

This endpoint returns an array with information about every account associated with a particular member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
  "github.com/antihax/optional"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  opts := &atrium.ListMemberAccountsOpts{ 
    Page: optional.NewInt32(1), // int32 | Specify current page.
    RecordsPerPage: optional.NewInt32(12), // int32 | Specify records per page.
  }

  response, _, err := client.Members.ListMemberAccounts(ctx, memberGUID, userGUID, , opts)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.
optional *ListMemberAccountsOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a ListMemberAccountsOpts struct

Name Type Description Notes

page | optional.Int32| Specify current page. | recordsPerPage | optional.Int32| Specify records per page. |

Return type

AccountsResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ListMemberCredentials

CredentialsResponseBody ListMemberCredentials(ctx, memberGUID, userGUID) List member credentials

This endpoint returns an array which contains information on every non-MFA credential associated with a specific member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.ListMemberCredentials(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

CredentialsResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ListMemberMFAChallenges

ChallengesResponseBody ListMemberMFAChallenges(ctx, memberGUID, userGUID) List member MFA challenges

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.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.ListMemberMFAChallenges(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

ChallengesResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ListMemberTransactions

TransactionsResponseBody ListMemberTransactions(ctx, memberGUID, userGUID, optional) List member transactions

Use this endpoint to get all transactions from all accounts associated with a specific member.
This endpoint accepts optional URL query parameters — from_date and to_date — which are used to filter transactions according to the date they were posted. If no values are given for the query parameters, from_date will default to 90 days prior to the request and to_date will default to 5 days from the time of the request.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
  "github.com/antihax/optional"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  opts := &atrium.ListMemberTransactionsOpts{ 
    FromDate: optional.NewString("2016-09-20"), // string | Filter transactions from this date.
    ToDate: optional.NewString("2016-10-20"), // string | Filter transactions to this date.
    Page: optional.NewInt32(1), // int32 | Specify current page.
    RecordsPerPage: optional.NewInt32(12), // int32 | Specify records per page.
  }

  response, _, err := client.Members.ListMemberTransactions(ctx, memberGUID, userGUID, , opts)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.
optional *ListMemberTransactionsOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a ListMemberTransactionsOpts struct

Name Type Description Notes

fromDate | optional.String| Filter transactions from this date. | toDate | optional.String| Filter transactions to this date. | page | optional.Int32| Specify current page. | recordsPerPage | optional.Int32| Specify records per page. |

Return type

TransactionsResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ListMembers

MembersResponseBody ListMembers(ctx, userGUID, optional) List members

This endpoint returns an array which contains information on every member associated with a specific user.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
  "github.com/antihax/optional"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  opts := &atrium.ListMembersOpts{ 
    Page: optional.NewInt32(1), // int32 | Specify current page.
    RecordsPerPage: optional.NewInt32(12), // int32 | Specify records per page.
  }

  response, _, err := client.Members.ListMembers(ctx, userGUID, , opts)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
userGUID string The unique identifier for a `user`.
optional *ListMembersOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a ListMembersOpts struct

Name Type Description Notes

page | optional.Int32| Specify current page. | recordsPerPage | optional.Int32| Specify records per page. |

Return type

MembersResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ReadMember

MemberResponseBody ReadMember(ctx, memberGUID, userGUID) Read member

Use this endpoint to read the attributes of a specific member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.ReadMember(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ReadMemberStatus

MemberConnectionStatusResponseBody ReadMemberStatus(ctx, memberGUID, userGUID) Read member connection status

This endpoint provides the status of the member's 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 member's 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.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.

  response, _, err := client.Members.ReadMemberStatus(ctx, memberGUID, userGUID, )
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.

Return type

MemberConnectionStatusResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ReadOAuthWindowURI

MemberResponseBody ReadOAuthWindowURI(ctx, memberGUID, userGUID, optional) Read OAuth Window URI

This endpoint will generate an oauth_window_uri for the specified member.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
  "github.com/antihax/optional"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  opts := &atrium.ReadOAuthWindowURIOpts{ 
    ReferralSource: optional.NewString("BROWSER"), // string | Should be either BROWSER or APP depending on the implementation.
    UiMessageWebviewURLScheme: optional.NewString("ui_message_webview_url_scheme_example"), // string | A scheme for routing the user back to the application state they were previously in.
  }

  response, _, err := client.Members.ReadOAuthWindowURI(ctx, memberGUID, userGUID, , opts)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.
optional *ReadOAuthWindowURIOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a ReadOAuthWindowURIOpts struct

Name Type Description Notes

referralSource | optional.String| Should be either BROWSER or APP depending on the implementation. | uiMessageWebviewURLScheme | optional.String| A scheme for routing the user back to the application state they were previously in. |

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

ResumeMember

MemberResponseBody ResumeMember(ctx, memberGUID, userGUID, body) Resume aggregation from MFA

This endpoint answers the challenges needed when a member has been challenged by multi-factor authentication.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  body := atrium.MemberResumeRequestBody{} // MemberResumeRequestBody | Member object with MFA challenge answers

  response, _, err := client.Members.ResumeMember(ctx, memberGUID, userGUID, body)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.
body MemberResumeRequestBody Member object with MFA challenge answers

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]

UpdateMember

MemberResponseBody UpdateMember(ctx, memberGUID, userGUID, optional) Update member

Use this endpoint to update a member's attributes. Only the credentials, identifier, and metadata parameters can be updated. To get a list of the required credentials for the member, use the list member credentials endpoint.

Example

package main

import (
  "context"
  "fmt"
  "github.com/mxenabled/atrium-go/v2"
  "github.com/antihax/optional"
)

func main() {
  client := atrium.AtriumClient("YOUR_API_KEY", "YOUR_CLIENT_ID")
  ctx := context.Background()
  
  memberGUID := "MBR-123" // string | The unique identifier for a `member`.
  userGUID := "USR-123" // string | The unique identifier for a `user`.
  opts := &atrium.UpdateMemberOpts{ 
    Body: optional.NewInterface(atrium.MemberUpdateRequestBody{}), // MemberUpdateRequestBody | Member object to be updated with optional parameters (credentials, identifier, metadata)
  }

  response, _, err := client.Members.UpdateMember(ctx, memberGUID, userGUID, , opts)
  if err != nil {
    fmt.Printf("Error: %v\n", err)
  } else {
    fmt.Printf("Response: %s\n", response)
  }
}

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
memberGUID string The unique identifier for a `member`.
userGUID string The unique identifier for a `user`.
optional *UpdateMemberOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a UpdateMemberOpts struct

Name Type Description Notes

body | optional.Interface of MemberUpdateRequestBody| Member object to be updated with optional parameters (credentials, identifier, metadata) |

Return type

MemberResponseBody

[Back to top] [Back to API list] [Back to Model list] [Back to README]