Bloom Enablement Services GraphQL API Reference
Welcome to the Bloom Enablement Services GraphQL API Reference.
Authorization is required to access the API. Some queries require organization level access, while others require user level access (after a user has been created). See the links below for more details.
In these docs, there are a lot of links that allow you to enumerate through the Enablement Services GraphQL API schema. If you aren't familiar with a type, click on it to see its fields and descriptions. Light mode (upper right corner of this page) may make links more evident.
API Response Codes & Error Formats
Standard GraphQL Responses
-
Success and most errors:
All valid GraphQL requests return HTTP status code 200.
If an error occurs, the response includes anerrorsarray and adatafield (which may benull).{ -
Internal errors and validation errors:
The enablement GraphQL API will return HTTP 422 (Unprocessable Entity) for invalid GraphQL requests or 500 (Internal Server Error) for unexpected errors, but will still follow the GraphQL error format:{
Authentication Errors
-
Current behavior:
Authentication failures (e.g., invalid session) return HTTP 401 with a non-GraphQL error format:{ -
Planned change:
In the future, authentication errors will also return HTTP 200 with a standard GraphQL error response (as above), for consistency.
Possible error codes:
Here are current possible error codes to appear in extensions.code. The extensions.code field provides a machine-readable error type. The scenarios producing these codes vary between the many queries and mutations, and are detailed in the descriptions for each.
conflict: The request could not be completed due to a conflict with the current state.internal: An internal server error occurred.invalid: The request is invalid (e.g., bad input, user is closed, etc.).not_found: The requested resource was not found.not_implemented: The requested operation is not implemented.unauthorized: The user is not authenticated or not authorized.duplicate: The resource already exists (duplicate entry).
Getting Started
New here? Check out the Getting Started guide.
Queries
me
me
Description
Fetches the currently authenticated user's details.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Internal business logic error | internal |
Response
Returns a User
Example
Query
query Me {
me {
id
email
phoneNumber
name {
first
middle
last
}
address {
line1
line2
city
state
country
zipcode
type
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
edges {
...ConnectionsEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
tradelines {
edges {
...TradelinesEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
}
tradeline
tradeline
Description
The tradeline query allows you to retrieve a specific tradeline by ID.
🔒 Authentication: Requires organization or user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User not authenticated | unauthorized |
| Tradeline not found or not accessible | not_found |
| Internal business logic error | internal |
Response
Returns a Tradeline
Arguments
| Name | Description |
|---|---|
id - ID! | The unique identifier for the tradeline you are querying. |
Example
Query
query Tradeline($id: ID!) {
tradeline(id: $id) {
id
user {
id
email
phoneNumber
name {
...NameFragment
}
address {
...AddressFragment
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
...ConnectionsConnectionFragment
}
tradelines {
...TradelinesConnectionFragment
}
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
edges {
...TransactionsEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
furnishments {
id
furnishedAt
}
financialAccount {
id
name
type
mask
institution {
...InstitutionFragment
}
connection {
...ConnectionFragment
}
}
reportedConsumerAccountNumber
}
}
user
user
Description
Fetches a user by their ID or email address.
🔒 Authentication: Requires organization scoped authorization. See the Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Internal business logic error | internal |
| No identifier provided | invalid |
| Invalid ID format | invalid |
Example
Query
query User(
$id: ID,
$email: String
) {
user(
id: $id,
email: $email
) {
id
email
phoneNumber
name {
first
middle
last
}
address {
line1
line2
city
state
country
zipcode
type
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
edges {
...ConnectionsEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
tradelines {
edges {
...TradelinesEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
}
userExistsWithEmail
userExistsWithEmail
Description
Check if the user registering does not already exist in the database for your organization.
🔒 Requires Organization scoped authorization. See the Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User not found (returns false, no error) | |
| Internal business logic error | internal |
Response
Returns a Boolean!
validateDateOfBirth
validateDateOfBirth
Description
Validate user's stored date of birth with a passed in date of birth.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User not found (returns false, no error) | |
| Internal business logic error | internal |
Response
Returns a ValidateDateOfBirthOutput!
Arguments
| Name | Description |
|---|---|
dateOfBirth - DateInput! | Birthdate to validate as user's recorded birthday. Must not be in the future, and can not be less than 18 years old. |
webhookDashboardUrl
webhookDashboardUrl
Description
The webhookDashboardUrl query allows you to get the URL for the webhook dashboard in order to view and manage webhooks.
🔒 Authentication: Requires organization scoped authorization via client credentials. See the 'Client Credentials Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User not authorized for organization | forbidden |
| Internal business logic error | internal |
Response
Returns a String!
Mutations
closeTradeline
closeTradeline
Description
The closeTradeline mutation is used to confirm that a user has opted to stop having a recurring bill reported to the credit bureau(s). Upon successful execution, it returns the tradeline object.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Tradeline not found or not accessible by user | not_found |
| Tradeline is not open | invalid |
| Internal business logic error | internal |
Response
Returns a CloseTradelineOutput!
Arguments
| Name | Description |
|---|---|
id - ID! | Unique tradeline identifier. |
Example
Query
mutation CloseTradeline($id: ID!) {
closeTradeline(id: $id) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
deleteConnection
deleteConnection
Description
The deleteConnection mutation soft deletes an aggregator connection from Bloom's system and emits the respective event to the aggregator. A webhook should be delivered once this asynchronous process completes.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Response
Returns a DeleteConnectionOutput!
Arguments
| Name | Description |
|---|---|
id - ID! |
deleteMe
deleteMe
Description
The deleteMe mutation is used to when a user wants to completely close their account and no longer have tradelines reported to credit bureaus. This mutation disconnects the aggregator from Bloom's Enablement Services.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User not found | not_found |
| Internal business logic error | internal |
Response
Returns a DeleteMeOutput!
deleteTradeline
deleteTradeline
Response
Returns a DeleteTradelineOutput!
Arguments
| Name | Description |
|---|---|
input - DeleteTradelineInput! | Identifies the tradeline to delete. |
Example
Query
mutation DeleteTradeline($input: DeleteTradelineInput!) {
deleteTradeline(input: $input) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
importConnections
importConnections
Description
The importConnections mutation allows you to import multiple previously established aggregator connections, enabling our system to ingest and categorize transactions associated with those connections. This process facilitates transaction management and categorization for streamlined data handling within your application. Each connection can only be imported once. Only one of the tokens or tokensWithMetadata arrays should be provided. If the tokens array is provided, the tokensWithMetadata array will be ignored.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Invalid or missing token(s) | invalid |
| One or more tokens already imported (duplicate entry) | conflict |
| Error parsing token(s) (malformed, not a valid string) | invalid |
| Internal business logic error | internal |
Response
Returns an ImportConnectionsOutput!
Arguments
| Name | Description |
|---|---|
input - ImportConnectionsInput! |
importPlaidProcessorTokens
importPlaidProcessorTokens
Description
Similar to importConnections, but each token is imported independently. Per-token failures are returned in failures and do not stop other tokens from being imported. Successful imports appear in successes (token plus connection).
Mutation-level errors (GraphQL errors array; HTTP status 200; each error includes extensions.code):
| Scenario | errors.extensions.code |
|---|---|
No non-empty tokens: both tokens and tokensWithMetadata missing, empty, or only empty strings after trimming | invalid |
Per-token failures (mutation returns data with HTTP 200; no GraphQL errors entry for these—inspect failures): Each TokenError has token and error (message only; no extensions on the response for these rows). The error class below matches the same errors.extensions.code taxonomy used elsewhere, for logging and client-side grouping:
| Scenario | error class |
|---|---|
| User is closed | invalid |
| Organization does not support Plaid processor token import | invalid |
| Connection not eligible for this organization | invalid |
| Duplicate connection / token already imported | conflict |
| Invalid or malformed token, aggregator validation failure | invalid |
| Internal or upstream failure | internal |
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Response
Returns an ImportPlaidProcessorTokensOutput!
Arguments
| Name | Description |
|---|---|
input - ImportPlaidProcessorTokensInput! |
importUser
importUser
Description
The importUser mutation is used to import an existing Bloom consumer into the Enablement Services platform. The consumer must have an email and phone number set.
🔒 Requires Organization scoped authorization. See the Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Invalid consumer ID format | invalid |
| Consumer not found | not_found |
| Internal business logic error | internal |
Response
Returns an ImportUserOutput!
Arguments
| Name | Description |
|---|---|
input - ImportUserInput! |
Example
Query
mutation ImportUser($input: ImportUserInput!) {
importUser(input: $input) {
user {
id
email
phoneNumber
name {
...NameFragment
}
address {
...AddressFragment
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
...ConnectionsConnectionFragment
}
tradelines {
...TradelinesConnectionFragment
}
}
}
}
openRentTradeline
openRentTradeline
Description
The openRentTradeline mutation is used to confirm that a user has opted to have a rent recurring bill reported to the credit bureau(s). Upon successful execution, it returns the tradeline that has been opened. This process ensures the tradeline is correctly configured for credit reporting.
This mutation is idempotent: if the tradeline is already open with the same details, it returns the existing tradeline without error. If the tradeline is already open with different details, it returns an error.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User is closed | invalid |
| Tradeline not found or not accessible by user | not_found |
| Tradeline already open with different details | invalid |
| Tradeline status is not unopened | invalid |
| Tradeline is not eligible | invalid |
| Tradeline details missing | invalid |
| Tradeline details type is invalid | invalid |
| Tradeline is not a rent tradeline | invalid |
| Internal business logic error | internal |
Note: If tradeline is already open with the same details, the mutation succeeds and returns the existing tradeline (idempotent behavior).
Response
Returns an OpenRentTradelineOutput!
Arguments
| Name | Description |
|---|---|
id - ID! | |
details - RentTradelineInput! |
Example
Query
mutation OpenRentTradeline(
$id: ID!,
$details: RentTradelineInput!
) {
openRentTradeline(
id: $id,
details: $details
) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
openTelcoTradeline
openTelcoTradeline
Description
The openTelcoTradeline mutation is used to confirm that a user has opted to have a telco recurring bill reported to the credit bureau(s). Upon successful execution, it returns the tradeline that has been opened. This process ensures the tradeline is correctly configured for credit reporting.
This mutation is idempotent: if the tradeline is already open with the same details, it returns the existing tradeline without error. If the tradeline is already open with different details, it returns an error.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User is closed | invalid |
| Tradeline not found or not accessible by user | not_found |
| Tradeline already open with different details | invalid |
| Tradeline status is not unopened | invalid |
| Tradeline is not eligible | invalid |
| Tradeline details missing | invalid |
| Tradeline details type is invalid | invalid |
| Tradeline is not a telco tradeline | invalid |
| Internal business logic error | internal |
Note: If tradeline is already open with the same details, the mutation succeeds and returns the existing tradeline (idempotent behavior).
Response
Returns an OpenTelcoTradelineOutput!
Arguments
| Name | Description |
|---|---|
id - ID! | |
details - TelcoTradelineInput! |
Example
Query
mutation OpenTelcoTradeline(
$id: ID!,
$details: TelcoTradelineInput!
) {
openTelcoTradeline(
id: $id,
details: $details
) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
openUtilityTradeline
openUtilityTradeline
Description
The openUtilityTradeline mutation is used to confirm that a user has opted to have a utility recurring bill reported to the credit bureau(s). Upon successful execution, it returns the tradeline that has been opened. This process ensures the tradeline is correctly configured for credit reporting.
This mutation is idempotent: if the tradeline is already open with the same details, it returns the existing tradeline without error. If the tradeline is already open with different details, it returns an error.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| User is closed | invalid |
| Tradeline not found or not accessible by user | not_found |
| Tradeline already open with different details | invalid |
| Tradeline status is not unopened | invalid |
| Tradeline is not eligible | invalid |
| Tradeline details missing | invalid |
| Tradeline details type is invalid | invalid |
| Tradeline is not a utility tradeline | invalid |
| Internal business logic error | internal |
Note: If tradeline is already open with the same details, the mutation succeeds and returns the existing tradeline (idempotent behavior).
Response
Returns an OpenUtilityTradelineOutput!
Arguments
| Name | Description |
|---|---|
id - ID! | |
details - UtilityTradelineInput! |
Example
Query
mutation OpenUtilityTradeline(
$id: ID!,
$details: UtilityTradelineInput!
) {
openUtilityTradeline(
id: $id,
details: $details
) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
reOpenOrganizationUser
reOpenOrganizationUser
Description
The reOpenOrganizationUser mutation reopens a previously closed user, clearing its closedAt timestamp. The user must currently be closed and belong to the authenticated organization. Upon success it returns the user object. After reopening, the client may re-establish bank connections via importConnection or importPlaidProcessorTokens.
🔒 Requires Organization scoped authorization. See the Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Invalid input format (malformed userId) | invalid |
| User not found in the organization | not_found |
| User is not closed | invalid |
| Internal business logic error | internal |
Response
Returns a ReOpenOrganizationUserOutput!
Arguments
| Name | Description |
|---|---|
input - ReOpenOrganizationUserInput! | Input object |
Example
Query
mutation ReOpenOrganizationUser($input: ReOpenOrganizationUserInput!) {
reOpenOrganizationUser(input: $input) {
user {
id
email
phoneNumber
name {
...NameFragment
}
address {
...AddressFragment
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
...ConnectionsConnectionFragment
}
tradelines {
...TradelinesConnectionFragment
}
}
}
}
registerOrganizationUser
registerOrganizationUser
Description
The registerOrganizationUser mutation is used to create a new user in the database. Upon successful creation, the mutation will return the user's unique ID. You should store this ID in your database and associate it with your consumer record, as it will be required for accessing authenticated queries and mutations.
🔒 Requires Organization scoped authorization. See the Enablement Services Authorization guide for reference.
Sandbox org size limit: In the sandbox environment, registration is rejected if the organization already has 50 non-closed users (users without a closedAt timestamp). Close existing users to add more. This does not apply to production.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Input validation failed (invalid email, phone, etc.) | invalid |
| Phone number parsing/formatting failed | invalid |
| User already exists with the given email | invalid |
| Organization at sandbox open-user limit (see above) | invalid |
| Internal business logic error | internal |
Response
Returns a RegisterOrganizationUserOutput!
Arguments
| Name | Description |
|---|---|
input - RegisterOrganizationUserInput! | Input object |
Example
Query
mutation RegisterOrganizationUser($input: RegisterOrganizationUserInput!) {
registerOrganizationUser(input: $input) {
user {
id
email
phoneNumber
name {
...NameFragment
}
address {
...AddressFragment
}
status
notificationPreferences
createdAt
updatedAt
syncedAt
closedAt
connections {
...ConnectionsConnectionFragment
}
tradelines {
...TradelinesConnectionFragment
}
}
}
}
reopenTradeline
reopenTradeline
Description
The reopenTradeline mutation reopens a tradeline that was previously closed by the consumer. The user must be open (not closed) and have at least one connection that is not closed and not disconnected. Upon success it returns the reopened tradeline object. Reopening then continues asynchronously; a tradeline.reopened webhook is delivered once this asynchronous process completes.
🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.
Business logic errors (all return HTTP status 200):
| Scenario | errors.extensions.code |
|---|---|
| Invalid input format (malformed tradelineId) | invalid |
| Tradeline not found or not accessible by user | not_found |
| User is closed | invalid |
| User has no connection that is open (not closed/disconnected) | invalid |
| Tradeline is not closed, or was not closed by the consumer | invalid |
| Internal business logic error | internal |
Response
Returns a ReopenTradelineOutput!
Arguments
| Name | Description |
|---|---|
input - ReopenTradelineInput! | Identifies the tradeline to reopen. |
Example
Query
mutation ReopenTradeline($input: ReopenTradelineInput!) {
reopenTradeline(input: $input) {
tradeline {
id
user {
...UserFragment
}
merchant
category
status
isEligible
paymentFrequency
lastTransactionDate
transactionCount
details {
... on RentTradelineDetails {
...RentTradelineDetailsFragment
}
... on UtilityTradelineDetails {
...UtilityTradelineDetailsFragment
}
... on TelcoTradelineDetails {
...TelcoTradelineDetailsFragment
}
}
createdAt
updatedAt
transactions {
...TransactionsConnectionFragment
}
furnishments {
...FurnishmentFragment
}
financialAccount {
...FinancialAccountFragment
}
reportedConsumerAccountNumber
}
}
}
Types
Address
Fields
| Field Name | Description |
|---|---|
line1 - String! | The first line of the address. |
line2 - String | The second line of the address (optional). |
city - String! | The city of the address. |
state - String! | The state or province of the address (2 letter state code). |
country - String! | The country of the address. |
zipcode - String! | The postal or ZIP code of the address (5 digit zipcode). |
type - AddressType! | The type of address. |
AddressInput
Fields
| Input Field | Description |
|---|---|
line1 - String! | The first line of the address. Must be between 0 and 100 characters, not contain symbols or slashes, and have no leading spaces. |
line2 - String | The second line of the address (optional). Must not contain emojis. Must be between 0 and 100 characters, not contain symbols or slashes, and have no leading spaces. |
city - String! | The city of the address. Can not contain numbers or special characters. Must be between 0 and 100 characters, not contain symbols or slashes, and have no leading spaces. |
state - String! | The state or province of the address. Must be a valid 2 letter US state code. |
country - String! | The country of the address. Must be between 0 and 100 characters, not contain symbols or slashes, and have no leading spaces. |
zipcode - String! | The postal or ZIP code of the address. Must be a 5 digit number. |
type - AddressType! | The type of address. |
AddressType
Boolean
CloseTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline! | The tradeline that was closed. |
Connection
Fields
| Field Name | Description |
|---|---|
id - ID! | The unique identifier for the connection. |
status - ConnectionStatus! | The current status of the connection. |
institution - Institution! | The financial institution associated with the connection. |
financialAccounts - [FinancialAccount!] | The financial accounts associated with the connection. |
user - User! | The user associated with the connection. |
ConnectionFilter
Fields
| Input Field | Description |
|---|---|
status - ConnectionStatus | Filter by connection status. |
ConnectionStatus
Values
| Enum Value | Description |
|---|---|
| The connection is active and functioning as expected. |
| The connection requires a refresh to retrieve updated data. |
| The connection has been closed by the user and is no longer active. |
| There was a problem with the connection, and it needs to be refreshed or repaired. |
| Unexpected error in gathering connections from aggregator |
| The connection provider is returning and error |
| The connection provider is returning and error from the institution |
ConnectionsConnection
Fields
| Field Name | Description |
|---|---|
edges - [ConnectionsEdge!]! | An array of connection edges |
pageInfo - PageInfo! | PageInfo provides information about the paginated collection. |
ConnectionsEdge
Fields
| Field Name | Description |
|---|---|
cursor - String! | A unique identifier for a specific position in a paginated list. Used for fetching the next set of results in pagination. |
node - Connection! | The connection object. |
ConnectionsInput
Fields
| Input Field | Description |
|---|---|
first - Int | This is a pagination parameter. (I.e. get the first N records). |
after - String | This is a pagination parameter. (I.e. get the first N records AFTER this cursor). |
filter - ConnectionFilter | Filter by connection status. |
CurrencyCode
Date
DateInput
DeleteConnectionOutput
Fields
| Field Name | Description |
|---|---|
connection - Connection! | The deleted connection object. |
DeleteMeOutput
Fields
| Field Name | Description |
|---|---|
user - User! | Returned user object |
DeleteTradelineInput
Fields
| Input Field | Description |
|---|---|
tradelineId - ID! | Unique tradeline identifier. |
DeleteTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline! | The tradeline that was deleted (soft-deleted). |
FinancialAccount
Fields
| Field Name | Description |
|---|---|
id - ID! | The unique identifier for the financial account. |
name - String! | The name of the financial account. |
type - FinancialAccountType! | The type of the financial account. |
mask - String! | The mask of the financial account (usually the last 4 digits of the account number). |
institution - Institution! | The institution associated with the financial account. |
connection - Connection | The current connection for this financial account. |
FinancialAccountType
Values
| Enum Value | Description |
|---|---|
| Checking, Savings and cash management. |
| Brokerage, retirement and other investments. |
| Credit cards, and Lines of Credit. |
| Mortgage, student and installment loans. |
| Reserved for historical records where the type can no longer be determined. This value is only used for financial accounts created before the type requirement was added and the type can no longer be retrieved from the external source. |
Furnishment
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
ImportConnectionsInput
Fields
| Input Field | Description |
|---|---|
tokens - [String!] | The Plaid access tokens or Processor tokens. |
tokensWithMetadata - [ProcessorTokenWithMetadata!] |
ImportConnectionsOutput
Fields
| Field Name | Description |
|---|---|
connections - [Connection!]! | The created connection objects. |
ImportPlaidProcessorTokensInput
Fields
| Input Field | Description |
|---|---|
tokens - [String!] | The Plaid access tokens or Processor tokens. |
tokensWithMetadata - [ProcessorTokenWithMetadata!] |
ImportPlaidProcessorTokensOutput
Fields
| Field Name | Description |
|---|---|
successes - [ProcessorTokenImportSuccess!]! | |
failures - [TokenError!]! |
ImportUserInput
Fields
| Input Field | Description |
|---|---|
id - String! | The ID of the consumer to import. This corresponds to the bloom consumer identifier used in the core consumers endpoints |
ImportUserOutput
Fields
| Field Name | Description |
|---|---|
user - User! | The enablement user object created as a result of the import. |
Institution
Int
Money
Fields
| Field Name | Description |
|---|---|
amount - Int! | The amount of money. |
currency - CurrencyCode! | The currency of the money. |
Name
NameInput
Node
Fields
| Field Name | Description |
|---|---|
id - ID! | The unique identifier for the node. |
NotificationType
Values
| Enum Value | Description |
|---|---|
| May be used in the future, but not at this time for enablement services customers. |
| May be used in the future, but not at this time for enablement services customers. |
| This should be the value used as we do not send notifications at this time to users tied to an enablement services customer. |
OpenRentTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline | The tradeline that was opened. |
OpenTelcoTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline | The tradeline that was opened. |
OpenUtilityTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline | The tradeline that was opened. |
PageInfo
PaymentFrequency
Values
| Enum Value | Description |
|---|---|
| The payment frequency is unknown. |
| Payments are made daily. |
| Payments are made weekly. |
| Payments are made biweekly. |
| Payments are made semimonthly. |
| Payments are made monthly. |
| Payments are made every two months. |
| Payments are made quarterly. |
| Payments are made semi-annually. |
| Payments are made annually. |
ProcessorTokenImportSuccess
Fields
| Field Name | Description |
|---|---|
token - String! | |
connection - Connection! |
ProcessorTokenWithMetadata
ReOpenOrganizationUserInput
Fields
| Input Field | Description |
|---|---|
userId - ID! | The unique identifier of the closed user to reopen. |
ReOpenOrganizationUserOutput
Fields
| Field Name | Description |
|---|---|
user - User | The user that was reopened. |
RegisterOrganizationUserInput
Fields
| Input Field | Description |
|---|---|
organizationSlug - String! | URL-friendly name of the organization. |
email - String! | The email address of the user. |
phoneNumber - String! | The phone number of the user. Must be a US phone number. |
name - NameInput! | The name of the user. |
address - AddressInput! | The address of the user. |
dateOfBirth - DateInput! | The date of birth of the user. Must not be in the future, and can not be less than 18 years old. |
nationalId - String | The national ID of the user (optional). |
visitorID - String | The visitor ID for tracking purposes (optional). |
RegisterOrganizationUserOutput
Fields
| Field Name | Description |
|---|---|
user - User | The user object created as a result of the registration. |
RentTradelineDetails
Fields
| Field Name | Description |
|---|---|
serviceAddressString - String | Service address of the tradeline. |
serviceAddressType - AddressType! | Type of service address. |
leaseStartDate - Date! | The start date of the lease. |
isPrimaryAddress - Boolean! | Indicates if this is the primary address. |
hasOtherMortgageOrRent - Boolean! | Indicates if there are other mortgage or rent obligations. |
RentTradelineInput
Fields
| Input Field | Description |
|---|---|
serviceAddressString - String | The service address of the tradeline. |
serviceAddressType - AddressType | The type of service address. |
leaseStartDate - Date | The start date of the lease. |
isPrimaryAddress - Boolean! | Indicates if this is the primary address. |
hasOtherMortgageOrRent - Boolean! | Indicates if there are other mortgage or rent obligations. |
ReopenTradelineInput
Fields
| Input Field | Description |
|---|---|
tradelineId - ID! | Unique identifier of the tradeline to reopen. |
ReopenTradelineOutput
Fields
| Field Name | Description |
|---|---|
tradeline - Tradeline! | The tradeline that was reopened. |
String
TelcoTradelineDetails
Fields
| Field Name | Description |
|---|---|
servicePhone - String! | Service phone number of the tradeline. |
TelcoTradelineInput
Fields
| Input Field | Description |
|---|---|
servicePhone - String! | The service phone number of the tradeline. |
Time
TokenError
Tradeline
Fields
| Field Name | Description |
|---|---|
id - ID! | The unique identifier for the tradeline. |
user - User! | The user that owns the tradeline. |
merchant - String! | The merchant associated with the tradeline. |
category - TradelineCategory! | The category of the tradeline. |
status - TradelineStatus! | The status of the tradeline. |
isEligible - Boolean! | Whether or not the tradeline is eligible for reporting to the credit bureaus. A tradelines eligibility is not dependent on the tradeline status. A tradeline is eligible if the following conditions are met:
|
paymentFrequency - PaymentFrequency! | The payment frequency of the tradeline. |
lastTransactionDate - Date! | The last transaction date of the tradeline. |
transactionCount - Int! | The number of transactions associated with the tradeline. |
details - TradelineDetails | The details associated with the tradeline. |
createdAt - Time! | The time the tradeline was created. |
updatedAt - Time! | The time the tradeline was last updated. |
transactions - TransactionsConnection! | The transactions associated with the tradeline. |
| |
furnishments - [Furnishment] | Furnishment data associated to the tradeline |
financialAccount - FinancialAccount | The most recent financial account associated with this tradeline, if any. A tradeline may be linked to different financial accounts over time; this returns only the current one. |
reportedConsumerAccountNumber - String | The account number reported to credit bureaus for this tradeline. |
TradelineCategory
TradelineDetails
TradelineStatus
TradelinesConnection
Fields
| Field Name | Description |
|---|---|
edges - [TradelinesEdge!]! | The edges of the tradelines connection. |
pageInfo - PageInfo! | The pagination information for the tradelines connection. |
TradelinesEdge
Fields
| Field Name | Description |
|---|---|
cursor - String! | A unique identifier for a specific position in a paginated list. Used for fetching the next set of results in pagination. |
node - Tradeline! | The tradeline object. |
TradelinesInput
Fields
| Input Field | Description |
|---|---|
first - Int | This is a pagination parameter. (I.e. get the first N records). |
after - String | This is a pagination parameter. (I.e. get the first N records AFTER this cursor). |
status - TradelineStatus | Filter by the status of the tradeline. |
isEligible - Boolean | Filter by whether or not the tradeline is eligible for reporting to the credit bureaus. |
Transaction
Fields
| Field Name | Description |
|---|---|
id - ID! | The unique identifier for the transaction. |
date - Date! | The date of the transaction. |
value - Money! | The value of the transaction. |
tradeline - Tradeline! | The tradeline that the transaction is associated with. |
TransactionsConnection
Fields
| Field Name | Description |
|---|---|
edges - [TransactionsEdge] | The edges of the transactions connection. |
pageInfo - PageInfo! | The pagination information for the transactions connection. |
TransactionsEdge
Fields
| Field Name | Description |
|---|---|
cursor - String! | A unique identifier for a specific position in a paginated list. Used for fetching the next set of results in pagination. |
node - Transaction! | The transaction object. |
TransactionsInput
Fields
| Input Field | Description |
|---|---|
first - Int | This is a pagination parameter. (I.e. get the first N records). - Optional. Only required if you are wanting to query for the transactionsas well. |
after - String | This is a pagination parameter. (I.e. get the first N records AFTER this cursor). - Optional. Only required if you are wanting to query for the transactions as well. |
User
Fields
| Field Name | Description |
|---|---|
id - ID! | Global identifier for the user. |
email - String! | User's email address |
phoneNumber - String! | User's phone number |
name - Name! | User's name |
address - Address! | User's address |
status - UserStatus! | User's status |
notificationPreferences - NotificationType! | Notifications are currently not sent for enablement Services. |
createdAt - Time! | The time the user was created in the database. |
updatedAt - Time! | The last time the user was updated. |
syncedAt - Time | The last time this user's connections were synced. |
closedAt - Time | The time this user profile was closed. |
connections - ConnectionsConnection! | The financial institution connections the user has created. |
| |
tradelines - TradelinesConnection! | The tradelines associated with the connected financial institution(s) this user has connected. |
| |
UserStatus
UtilityTradelineDetails
Fields
| Field Name | Description |
|---|---|
serviceAddressString - String | Service address of the tradeline. |
serviceAddressType - AddressType! | Type of service address. |
isPrimaryAddress - Boolean! | Indicates if this is the primary address. |
utilityTypes - [UtilityType!]! | The utility types associated with the tradeline. |
UtilityTradelineInput
Fields
| Input Field | Description |
|---|---|
serviceAddressString - String | The service address of the tradeline. |
serviceAddressType - AddressType | The type of service address. |
isPrimaryAddress - Boolean! | Indicates if this is the primary address. |
utilityTypes - [UtilityType!]! | The utility types associated with the tradeline. If the additional utility type is provided, another type must be included. |
UtilityType
ValidateDateOfBirthOutput
Fields
| Field Name | Description |
|---|---|
isValid - Boolean! | The result of the birthdate validation |

