# Atto Developer Documentation Version: all License: All Rights Reserved © The IDCO. Ltd ## Servers UK Environment (Production) ``` https://uk.api.atto.co ``` US Environment (Production) ``` https://us.api.atto.co ``` ## Security ### Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token in the text input below. Example: "Bearer token123" Type: http Scheme: bearer ## Download OpenAPI description [Atto Developer Documentation](https://docs.atto.co/_spec/content/apis/index.yaml) ## Get Token ### Overview {% #authentication-overview %} To access our APIs you need to pass your `client_id` and `client_secret`, along with the `scope` that you are requesting, to our authentication service. If that all goes according to plan then an **access_token** will be returned to you, which is valid for one hour. ### Integration {% #authentication-integration %} A request with the following payload to our endpoint should return an access token for use in subsequent calls in any of our Data API endpoints. |Key|Value| |---|---| |`grant_type`|`client_credentials`| |`client_id`|The `client_id` that we supplied to you| |`client_secret`|The `client_secret` that we supplied to you| |`scope`|The scope value for the API that you need access to| Please find below the scopes values for our APIs, these values need to be specified when requesting a token: |API| Scope| |---|---| |Atto Consent Service|`api:consent`| |Atto Data API|`api:data`| |Atto Stored Data API|`api:stored_data`| |Atto Advanced Insights API|`api:advanced_insights`| |Atto Connect Invitation API|`api:connect_invitation`| {% admonition type="info" %} Please note that the request should have a content-type of application/x-www-form-urlencoded {% /admonition %} Assuming the authentication was successful, you should receive a [200 OK](https://httpstatuses.com/200) response. The important fields in the authentication response are: |Field|Description| |-|-| |`expires_in`|The number of seconds before the token expires (defaults to 3600 seconds)| |`token_type`|`Bearer`| |`access_token`|The token you will use in subsequent requests| If you expect to make repeated and/or delayed calls using this `access_token`, you should pay attention to the `expires_in` field and request a new token if you have exceeded the expiration time. ### Using the access token {% #authentication-access-token %} Once you have the `access_token`, you'll assign it to the `Authorization` header with a prefix of `Bearer`. More information can be found [**here**](https://oauth.net/2/bearer-tokens/). ### Request a token for the provided scope and grant type (only client_credentials supported) - [POST /v1/oauth2/token](https://docs.atto.co/content/apis/get-token/paths/~1v1~1oauth2~1token/post.md) ## Connect Invitation ### Overview {% #connect-invitation-overview %} Connect Invitation API offers the capability to effortlessly send Connect invitations to your users. It is underpinned by Atto's outbound email solution which supports dynamic components that provide flexible email content and customisation. The email subject, sender address and message will be configured in the email template for you by our support team. Get immediate feedback about email delivery using our [v2 webhooks](/content/docs/guides/platform-integration/notifications#v2-webhooks), which will inform you if the invitation email's state has been `Sent`, `Received`, `Opened`, `Clicked`, or `Failed`. This provides additional tracking possibilities to build more sophisticated workflows based on time period and see if the customer has actioned a Connect Invitation email during the configured period. ### Authentication {% #connect-invitation-authentication %} This API requires a bearer token using the `api:connect_invitation` scope. ### Gets a single email invitation - [GET /connect-invitations/v1/{invitationId}](https://docs.atto.co/content/apis/connect-invitation/paths/~1connect-invitations~1v1~1%7Binvitationid%7D/get.md) ### Sends an email invitation - [POST /connect-invitations/v1](https://docs.atto.co/content/apis/connect-invitation/paths/~1connect-invitations~1v1/post.md) ## Get Consents ### Overview {% #consent-overview %} This allows you to retrieve details for consents such as expiry date, status, provider, permissions and any other detail about the consent that has been stored. ### Retrieve list of consents. - [GET /consents/v2](https://docs.atto.co/content/apis/get-consents/paths/~1consents~1v2/get.md) ### Retrieve a consent by consent ID. - [GET /consents/v1/{consentId}](https://docs.atto.co/content/apis/get-consents/paths/~1consents~1v1~1%7Bconsentid%7D/get.md) ### Retrieve list of consents. (deprecated) - [GET /consents/v1](https://docs.atto.co/content/apis/get-consents/paths/~1consents~1v1/get.md) ## Revoke Consent ### Overview {% #consent-revoke-overview %} This allows you to revoke an active consent. Please note that this will not remove any stored data for the consent. ### Revoke a consent. - [POST /consents/v1/{consentId}/revoke](https://docs.atto.co/content/apis/revoke-consent/paths/~1consents~1v1~1%7Bconsentid%7D~1revoke/post.md) ## Bank Account Verification ### Integration {% #bank-account-verification-integration %} In response to your call, you will receive a JSON object containing the verification result and optionally a reason of a failed verification. We currently support IBAN or a bank code as account identifiers. Given below is a list of supported bank codes for a country/region. |Bank Code|Region| |---|---| |Routing Number|US, CA| |Sort Code|UK| |BIC|Global provided the bank is part of SWIFT. Please note not all banks will expose this even if they are part of the SWIFT network.| ### Trigger a bank account validation. - [POST /account-verification/v3/consents/{consentId}](https://docs.atto.co/content/apis/bank-account-verification/paths/~1account-verification~1v3~1consents~1%7Bconsentid%7D/post.md): Returns a result with an accompanying error code if validation is inconclusive. ## Bank Data ### Overview {% #data-api-overview %} The most common use case is fetching user's bank account data from the Atto Data API. ### Deprecated endpoint {% #data-api-deprecated %} The endpoint `/data/v1/consents/{consentId}/accounts`, previously returned all the data we received from the bank/data provider including all transactions along with any data enrichment (if enabled for your configuration) we provide at the time of the request. ### Latest endpoints {% #data-api-latest %} The above endpoint has been split into the following: - `/data/v2/consents/{consentId}/accounts` _(Returns a list containing all accounts shared for a consent)_ - `/data/v2/consents/{consentId}/accounts/{accountId}` _(Returns a specific account shared for a consent)_ - `/data/v2/consents/{consentId}/accounts/{accountId}/balances` _(Returns the balance information for a specific account)_ - `/data/v2/consents/{consentId}/accounts/{accountId}/transactions` _(Returns a list of transactions tied to a specific account. The data returned by this endpoint is paginated and subsequent calls using the links provided in response body may be required to retrieve the full data set)_ _It's important to note that when trying to fetch 3 months or more worth of data OR if the account has lots of transactions, it is best to use the paginated endpoint for this owing to the large volume of data involved._ The transaction data returned via this endpoint has a sliding date window which is dependent upon the time of connection and the configured days of historical transactions. For instance, if the user connected their account on the 15th of the Month, and the client has been configured to return the last 10 days of transactions, the transactions fetched will be from the 5th to the 15th. If this data is requested 2 days later from the time of initial connection (15th), i.e. on the 17th this will return the transactions from the 7th to the 17th. ### Pagination Strategy {% #data-api-pagination %} We have added a `links` component to our responses to easily paginate through large volumes of data. The `next` and `prev` links represent relative uris. You can append our `baseUrl` to get the next or prev set of data if available as indicated below: ```javascript "links": { "prev": "/relativeUri/for_previous_page", "next": "/relativeUri/for_next_page" } ``` Please note for the UK Banks the SCA rules apply as well in addition to the sliding date range, the maximum allowed date range is last 90 days after the SCA expiry. For Data retention see our [Bank Data Stored API](<#tag/Bank-Data-(stored)>). ### Get all accounts - [GET /data/v2/consents/{consentId}/accounts](https://docs.atto.co/content/apis/bank-data/paths/~1data~1v2~1consents~1%7Bconsentid%7D~1accounts/get.md): Returns a list containing the accounts shared for a consent. Does a fresh pull from the external provider. ### Get single account - [GET /data/v2/consents/{consentId}/accounts/{accountId}](https://docs.atto.co/content/apis/bank-data/paths/~1data~1v2~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D/get.md): Returns a specific account shared for a consent. Does a fresh pull from the external provider. ### Get balances for account - [GET /data/v2/consents/{consentId}/accounts/{accountId}/balances](https://docs.atto.co/content/apis/bank-data/paths/~1data~1v2~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1balances/get.md): Returns the balance information for a specific account. Does a fresh pull from the external provider. ### Get transactions for account - [GET /data/v2/consents/{consentId}/accounts/{accountId}/transactions](https://docs.atto.co/content/apis/bank-data/paths/~1data~1v2~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1transactions/get.md): Returns a list of transactions tied to a specific account. The data returned by this endpoint is paginated and subsequent calls using the links provided in response body may be required to retrieve the full data set. Does a fresh pull from the external provider. ### Get all accounts (deprecated) - [GET /data/v1/consents/{consentId}/accounts](https://docs.atto.co/content/apis/bank-data/paths/~1data~1v1~1consents~1%7Bconsentid%7D~1accounts/get.md): Returns a list containing the accounts shared for a consent. Does a fresh pull from the external provider. ## Income Verification ### Overview {% #income-verification-overview %} Verify an individual’s income using Atto Income Verification. This solution, which accesses the individual’s bank statements for up to 12 months, is powered using our own unique algorithms and will return both single and multiple income streams to provide an accurate income figure along with a confidence score. Benefits can be included or excluded in the income calculation. Verified income is up to three main recurring income streams plus all benefit streams if present. Only credit transactions with amount > £50 are considered in the ranking mechanism, smaller credit transactions are ignored. In addition, all benefit streams will be shown if present, regardless the value. The main income streams are prioritized by total amount, their rank values are `One`, `Two` or `Three` . The benefit streams are returned in any case. Benefits aren't ranked, and rank is `null` for them. For example, if there are 3 recurring income streams and 2 benefit streams, then 5 income streams will be returned in total. ### Integration {% #income-verification-integration %} If the individual has connected their account using Atto Connect, you can use the `GET /income-verification/v1/consents/{consentId}/verifications` endpoint to verify an individual's income. ### Gets the income verifications for the accounts shared for a consent. - [GET /income-verification/v1/consents/{consentId}/verifications](https://docs.atto.co/content/apis/income-verification/paths/~1income-verification~1v1~1consents~1%7Bconsentid%7D~1verifications/get.md) ## Affordability ### Integration {% #affordability-integration %} If you wish to get the affordability for a given consent, you can do so using the `GET /affordability/v1/consents/:consentId` endpoint. Please ensure that this product is enabled for your app by talking to support before using this endpoint. There is one additional request parameters that can be specified when making a request: * `includeFlexibleCosts`, when `true`, returns transactions marked as flexible and will include those transactions in the affordability calculation. When this value is `false`, it will still return the transactions marked as flexible but will omit those transactions from the affordability calculation. Please note that `flexibleCosts` and `estimatedFlexibleCosts` values will be still shown in case there have been transactions that are associated with flexible costs, but these values are not taken into account while calculating `estimatedAffordability`. Note, the default value for this parameter is `true` In response to your call, you will receive a JSON object containing each months affordability with an estimated total for the months supplied with the account details. ### Authentication {% #affordability-authentication %} This API requires a bearer token using the `api:data` scope ### Get affordability for the accounts shared for a consent. - [GET /affordability/v1/consents/{consentId}](https://docs.atto.co/content/apis/affordability/paths/~1affordability~1v1~1consents~1%7Bconsentid%7D/get.md): Maximum of 12 months returned ## Bank Data (stored) ### Overview {% #insights-overview %} This set of APIs provides the same functionality as the Data API but the data is stored with Atto. There is an an [endpoint](#tag/Bank-Data-(stored)/paths/~1stored-data~1v1~1consents~1{consentId}~1refresh/post) that refreshes that data as well. This set of APIs can be enabled by [contacting support](https://www.atto.co/about/contact). ### Deletes all the stored data associated with the consent - [DELETE /stored-data/v1/consents/{consentId}](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D/delete.md): Please note this does not revoke the consent. ### Returns a list of accounts for a consent. - [GET /stored-data/v1/consents/{consentId}/accounts](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1accounts/get.md) ### Returns the end of day balances for an account for a given consent. - [GET /stored-data/v1/consents/{consentId}/accounts/{accountId}/end-of-day-balances](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1end-of-day-balances/get.md) ### Returns a list of transactions for an account for a consent. - [GET /stored-data/v1/consents/{consentId}/accounts/{accountId}/transactions](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1transactions/get.md) ### Returns provider details for a consent. - [GET /stored-data/v1/consents/{consentId}/provider-details](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1provider-details/get.md) ### Refreshes data for a consent. - [POST /stored-data/v1/consents/{consentId}/refresh](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1refresh/post.md): Please note only 4 refreshes are allowed in a 24 hour period. ### Deletes all the stored data associated with the user - [DELETE /stored-data/v1/users/{userId}](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1users~1%7Buserid%7D/delete.md): Please note this does not revoke any of the consents associated with the user. ### Returns balances for an account for a consent. - [GET /stored-data/v2/consents/{consentId}/accounts/{accountId}/balances](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v2~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1balances/get.md) ### Returns balances for an account for a consent. (deprecated) - [GET /stored-data/v1/consents/{consentId}/accounts/{accountId}/balances](https://docs.atto.co/content/apis/bank-data-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1balances/get.md) ## Income Verification (stored) ### Overview {% #stored-income-verification-overview %} This set of APIs provides the same functionality as the Income Verification endpoint but use the data and calculation that is stored instead of fetching it from the banks. ### Gets the income verifications for the accounts shared for a consent. - [GET /stored-data/v1/consents/{consentId}/income-verifications](https://docs.atto.co/content/apis/income-verification-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1income-verifications/get.md) ## Payment Account Confirmation ### Overview {% #payment-confirmation-overview %} The Payment Confirmation stage allows a user to select an account which they would like to receive payments into. It is an optional stage in Atto Connect. This endpoint allows the customer to retrieve the information that has been submitted by the user. ### Retrieves user entered payment account confirmation - [GET /stored-data/v1/consents/{consentId}/payment-account-confirmation](https://docs.atto.co/content/apis/payment-account-confirmation/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1payment-account-confirmation/get.md) ## Affordability (stored) ### Overview {% #stored-affordability-overview %} This set of APIs provides the same functionality as the Affordability endpoint but use the data and calculation that is stored instead of fetching it from the banks. After a refresh for a consent has been completed the monthly affordabilities data is updated and the estimated figures returned by this endpoint are recalculated. ### Gets the affordability for the transactions shared for a consent. - [GET /stored-data/v1/consents/{consentId}/affordability](https://docs.atto.co/content/apis/affordability-(stored)/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1affordability/get.md) ## Atto Score ### Integration {% #atto-score-integration %} If you wish to receive the Atto score, you can do so using the `GET /atto-score/v1/consents/{consentId}/accounts/{accountId}` endpoint. In response to your call, you will receive a JSON object containing the score. ### Authentication {% #atto-score-authentication %} This API requires a bearer token using the `api:advanced_insights` scope ### Errors {% #atto-score-errors %} Accounts must pass validation before a score can be generated. If validation fails, then requests to `GET /atto-score/v1/consents/{consentId}/accounts/{accountId}` will produce a `422 Unprocessable Entity` response. Only the first validation failure encountered will be stored and returned on request. ```javascript { "code": "atto_score_not_generated", "description": "Atto Score could not be generated.", "details": "", "correlationId": "string" } ``` | Possible Failures | | ----------------------------------------------------- | | No transactions | | Account is not a GBP account | | Account is not a Personal account | | Account is not a Current account | | The minimum transaction period of 90 days was not met | | The minimum transaction count of 50 was not met | | Transactions without BookingDate | | Account balances are null | ### Get Atto Score - [GET /atto-score/v1/consents/{consentId}/accounts/{accountId}](https://docs.atto.co/content/apis/atto-score/paths/~1atto-score~1v1~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D/get.md) ## Consumer Financial Health ### Integration {% #consumer-financial-health-integration %} If the individual has connected their account using Atto Connect, you can use the `GET /advanced-insights/v1/consents/{consentId}/consumer-financial-health` endpoint to verify an individual's financial health.
### Authentication {% #consumer-financial-health-authentication %} This API requires a bearer token using the `api:advanced_insights` scope. Also bear in mind that this API works only when data storage is enabled
### Details {% #consumer-financial-health-details %} We are taking customers' current balance as a basis for the calculation. Current balance does not contain any `Pending` transactions and drawn Overdraft amount. However our API response contains available balance amount, which will include `Pending` transactions and drawn Overdraft amount if there are any. - In case it is possible to get 365 days worth of data from the bank, then the service will return calculations for all available periods: `lastThirtyDays`, `lastSixtyDays`, `lastNinetyDays`, `lastOneEightyDays`, `lastThreeSixtyDays`. - If data period is less than 365 days (for example 90 days), then service will return calculations for `lastThirtyDays`, `lastSixtyDays` and `lastNinetyDays`. Calculations for all other periods will be equal to `lastNinetyDays`. - If the account has had no recent activity then some of the calculations will likely be zero. For example, if there have been no transactions within the past 30 days, then the Total Credit and Total Debit for the `lastThirtyDays` would be zero. The remaining values will be calculated based on the account balance amount. - If data period is more than 365 days, then we will return all available periods up to `lastThreeSixtyDays`. - To capture the most recent developments and account trends it is recommended to analyze each calculation over all time periods. ### Get Consumer Financial Health - [GET /advanced-insights/v1/consents/{consentId}/consumer-financial-health](https://docs.atto.co/content/apis/consumer-financial-health/paths/~1advanced-insights~1v1~1consents~1%7Bconsentid%7D~1consumer-financial-health/get.md) ## Business Financial Health ### Integration {% #business-financial-health-integration %} If the individual has connected their account using Atto Connect, you can use the `GET /advanced-insights/v1/consents/{consentId}/business-financial-health` endpoint to verify a business' financial health.
### Authentication {% #business-financial-health-authentication %} This API requires a bearer token using the `api:advanced_insights` scope. Also bear in mind that this API works only when data storage is enabled
### Details {% #business-financial-health-details %} We are taking customers' current balance as a basis for the calculation. Current balance does not contain any `Pending` transactions and drawn Overdraft amount. However our API response contains available balance amount, which will include `Pending` transactions and drawn Overdraft amount if there are any. - In case it is possible to get 365 days worth of data from the bank, then the service will return calculations for all available periods: `lastThirtyDays`, `lastSixtyDays`, `lastNinetyDays`, `lastOneEightyDays`, `lastThreeSixtyDays`. - If data period is less than 365 days (for example 90 days), then service will return calculations for `lastThirtyDays`, `lastSixtyDays` and `lastNinetyDays`. Calculations for all other periods will be equal to `lastNinetyDays`. - If the account has had no recent activity then some of the calculations will likely be zero. For example, if there have been no transactions within the past 30 days, then the Total Credit and Total Debit for the `lastThirtyDays` would be zero. The remaining values will be calculated based on the account balance amount. - If data period is more than 365 days, then we will return all available periods up to `lastThreeSixtyDays`. - To capture the most recent developments and account trends it is recommended to analyze each calculation over all time periods. ### Get Business Financial Health - [GET /advanced-insights/v1/consents/{consentId}/business-financial-health](https://docs.atto.co/content/apis/business-financial-health/paths/~1advanced-insights~1v1~1consents~1%7Bconsentid%7D~1business-financial-health/get.md) ## Categorisation Engine ### Integration {% #categorisation-integration %} If you wish to categorise any transactions that you have, you can do so using the `POST /insights-engine/v1/enrich-transactions` endpoint. This will be using the data supplied via the endpoint in the request. Please ensure that this product is enabled for your app by talking to support before using this endpoint. In response to your call, you will receive a JSON object containing the original transations with added classes and categories along with confidence score, and merchant name. ### Authentication {% #categorisation-authentication %} This API requires a bearer token using the `api:data` scope ### Adds categorisation, classification and predicts a merchant name for transactions supplied. - [POST /insights-engine/v1/enrich-transactions](https://docs.atto.co/content/apis/categorisation-engine/paths/~1insights-engine~1v1~1enrich-transactions/post.md) ## Income Verification Engine ### Integration {% #income-verification-engine-integration %} If you wish to verify an individual's income with your own transaction data, you can do so using the `POST /insights-engine/v1/income-verification` endpoint. This will be using the data supplied via the endpoint in the request. Please ensure that this product is enabled for your app by talking to support before using this endpoint. There are two additional query parameters that can be specified when making a request: * `excludeBenefits` that will omit transactions and income streams that were identified as benefits (UK only) * `includeFlags` that will return an extended response containing all the flags used in calculating confidence score rather than just the confidence score itself. In response to your call, you will receive a JSON object containing relevant income streams along with confidence score and estimated salary for each one, as well as a total confidence score and estimated salary for all income streams combined. ### Authentication {% #income-verification-engine-authentication %} This API requires a bearer token using the `api:data` scope ### Processes the income verifications for the accounts supplied. - [POST /insights-engine/v1/income-verification](https://docs.atto.co/content/apis/income-verification-engine/paths/~1insights-engine~1v1~1income-verification/post.md) ## Affordability Engine ### Integration {% #affordability-engine-integration %} If you wish to calculate affordability with any transactions that you have, you can do so using the `POST /insights-engine/v1/affordability` endpoint. This will be using the data supplied via the endpoint in the request. Please ensure that this product is enabled for your app by talking to support before using this endpoint. There are one additional request parameters that can be specified when making a request: * `includeFlexibleCosts`, when `true`, returns transactions marked as flexible and will include those transactions in the affordability calculation. When this value is `false`, it will still return the transactions marked as flexible but will omit those transactions from the affordability calculation. Please note that `flexibleCosts` and `estimatedFlexibleCosts` values will be still shown in case there have been transactions that are associated with flexible costs, but these values are not taken into account while calculating `estimatedAffordability`. Note, the default value for this parameter is `true` In response to your call, you will receive a JSON object containing each months affordability with an estimated total for the months supplied. There is a maximum transaction threshold of 5000 which will return an invalid request response if the number of transaction sent is greater than this. ### Authentication {% #affordability-engine-authentication %} This API requires a bearer token using the `api:data` scope ### Processes affordability for the transactions supplied. - [POST /insights-engine/v1/affordability](https://docs.atto.co/content/apis/affordability-engine/paths/~1insights-engine~1v1~1affordability/post.md): Maximum of 12 months returned ## Get Statement ### Integration {% #atto-statement-integration %} If you wish to get the PDF statement of an account for a given consent, you can do so using the `GET /stored-data/v1/consents/:consentId/accounts/:accountId/statement` endpoint. ### Authentication {% #atto-statement-authentication %} This API requires a bearer token using the `api:stored_data` scope. ### Get PDF statement for the account - [GET /stored-data/v1/consents/{consentId}/accounts/{accountId}/statement](https://docs.atto.co/content/apis/get-statement/paths/~1stored-data~1v1~1consents~1%7Bconsentid%7D~1accounts~1%7Baccountid%7D~1statement/get.md): Please note this statement is created by Atto and not the bank. ## Get Account List ### Integration {% #atto-credit-information-integration %} If you wish to get a list of credit information accounts for a user, you can do so using the `GET /connect/users/v1/{userId}/accounts` endpoint. ### Authentication {% #atto-credit-information-authentication %} This API requires a bearer token using the `api:cis` scope. ### Returns list of credit bureau connected accounts for a user - [GET /connect/users/v1/{userId}/accounts](https://docs.atto.co/content/apis/get-account-list/paths/~1connect~1users~1v1~1%7Buserid%7D~1accounts/get.md)