‎ ‎ ‎ Enablement Services GraphQL API Reference

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 Endpoints
# Sandbox:
https://api.bloomplus.dev/gql
# Production:
https://api.bloomplus.com/gql
Headers
# See authorization guide for more details.
Authorization: Bearer <USER_TOKEN>

Getting Started

New here? Check out the Getting Started guide.

Queries

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.

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
      }
    }
  }
}
Response
{
  "data": {
    "me": {
      "id": "00000000-0000-0000-0000-000000000000",
      "email": "[email protected]",
      "phoneNumber": "+12345678901",
      "name": {"first": "Buzz", "last": "Inga"},
      "address": {
        "line1": "123 Main St",
        "city": "Athens",
        "state": "FL",
        "country": "USA",
        "zipcode": "37745",
        "type": "PRIMARY"
      },
      "status": "VERIFIED",
      "notificationPreferences": "EMAIL",
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-02T00:00:00Z",
      "syncedAt": "10:15:30Z",
      "closedAt": "10:15:30Z",
      "connections": ConnectionsConnection,
      "tradelines": TradelinesConnection
    }
  }
}

tradeline

Description

The tradeline query allows you to retrieve a specific tradeline by ID.

🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.

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
      }
    }
  }
}
Variables
{
  "id": "00000000-0000-0000-0000-000000000000"
}
Response
{
  "data": {
    "tradeline": {
      "id": "00000000-0000-0000-0000-000000000000",
      "user": User,
      "merchant": "Pollen Water Co",
      "category": "RENT",
      "status": "UNOPENED",
      "isEligible": false,
      "paymentFrequency": "MONTHLY",
      "lastTransactionDate": "2007-12-03",
      "transactionCount": 987,
      "details": RentTradelineDetails,
      "createdAt": "10:15:30Z",
      "updatedAt": "10:15:30Z",
      "transactions": TransactionsConnection
    }
  }
}

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.

Response

Returns a Boolean!

Arguments
Name Description
organizationSlug - String! Your organization's slug (url friendly name of your organization)
email - String! User's email address

Example

Query
query UserExistsWithEmail(
  $organizationSlug: String!,
  $email: String!
) {
  userExistsWithEmail(
    organizationSlug: $organizationSlug,
    email: $email
  )
}
Variables
{
  "organizationSlug": "xyz789",
  "email": "abc123"
}
Response
{"data": {"userExistsWithEmail": false}}

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.

Response

Returns a String!

Example

Query
query WebhookDashboardUrl {
  webhookDashboardUrl
}
Response
{"data": {"webhookDashboardUrl": "xyz789"}}

Mutations

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.

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
      }
    }
  }
}
Variables
{
  "id": "00000000-0000-0000-0000-000000000000"
}
Response
{"data": {"closeTradeline": {"tradeline": Tradeline}}}

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.

Response

Returns a DeleteMeOutput!

Example

Query
mutation DeleteMe {
  deleteMe {
    user {
      id
      email
      phoneNumber
      name {
        ...NameFragment
      }
      address {
        ...AddressFragment
      }
      status
      notificationPreferences
      createdAt
      updatedAt
      syncedAt
      closedAt
      connections {
        ...ConnectionsConnectionFragment
      }
      tradelines {
        ...TradelinesConnectionFragment
      }
    }
  }
}
Response
{"data": {"deleteMe": {"user": User}}}

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.

🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.

Response

Returns an ImportConnectionsOutput!

Arguments
Name Description
input - ImportConnectionsInput!

Example

Query
mutation ImportConnections($input: ImportConnectionsInput!) {
  importConnections(input: $input) {
    connections {
      id
      status
      institution {
        ...InstitutionFragment
      }
      user {
        ...UserFragment
      }
    }
  }
}
Variables
{"input": ImportConnectionsInput}
Response
{
  "data": {
    "importConnections": {"connections": [Connection]}
  }
}

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.

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
      }
    }
  }
}
Variables
{"input": ImportUserInput}
Response
{"data": {"importUser": {"user": User}}}

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.

🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.

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
      }
    }
  }
}
Variables
{
  "id": "00000000-0000-0000-0000-000000000000",
  "details": RentTradelineInput
}
Response
{"data": {"openRentTradeline": {"tradeline": Tradeline}}}

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.

🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.

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
      }
    }
  }
}
Variables
{
  "id": "00000000-0000-0000-0000-000000000000",
  "details": TelcoTradelineInput
}
Response
{"data": {"openTelcoTradeline": {"tradeline": Tradeline}}}

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.

🔒 Authentication: Requires user scoped authorization via session token. See the 'Session Token Authentication' section in Enablement Services Authorization guide for reference.

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
      }
    }
  }
}
Variables
{
  "id": "00000000-0000-0000-0000-000000000000",
  "details": UtilityTradelineInput
}
Response
{
  "data": {
    "openUtilityTradeline": {"tradeline": Tradeline}
  }
}

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.

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
      }
    }
  }
}
Variables
{"input": RegisterOrganizationUserInput}
Response
{"data": {"registerOrganizationUser": {"user": User}}}

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.
Example
{
  "line1": "123 Main St",
  "line2": "Apt 101",
  "city": "Athens",
  "state": "FL",
  "country": "USA",
  "zipcode": "37745",
  "type": "PRIMARY"
}

AddressInput

Fields
Input Field 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.
Example
{
  "line1": "123 Main St",
  "line2": "Apt 101",
  "city": "Athens",
  "state": "FL",
  "country": "USA",
  "zipcode": "37745",
  "type": "PRIMARY"
}

AddressType

Values
Enum Value Description

PRIMARY

The primary address of the user.

SECONDARY

A secondary address of the user.

BUSINESS

A business address of the user.

MILITARY

A military address of the user.
Example
"PRIMARY"

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CloseTradelineOutput

Fields
Field Name Description
tradeline - Tradeline! The tradeline that was closed.
Example
{"tradeline": Tradeline}

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.
user - User! The user associated with the connection.
Example
{
  "id": "00000000-0000-0000-0000-000000000000",
  "status": "ACTIVE",
  "institution": Institution,
  "user": User
}

ConnectionFilter

Fields
Input Field Description
status - ConnectionStatus Filter by connection status.
Example
{"status": "ACTIVE"}

ConnectionStatus

Values
Enum Value Description

ACTIVE

The connection is active and functioning as expected.

REFRESH_REQUIRED

The connection requires a refresh to retrieve updated data.

CLOSED

The connection has been closed by the user and is no longer active.

DISCONNECTED

There was a problem with the connection, and it needs to be refreshed or repaired.

ERROR_SERVICE

Unexpected error in gathering connections from aggregator

ERROR_PROVIDER

The connection provider is returning and error

ERROR_INSTITUTION

The connection provider is returning and error from the institution
Example
"ACTIVE"

ConnectionsConnection

Fields
Field Name Description
edges - [ConnectionsEdge!]! An array of connection edges
pageInfo - PageInfo! PageInfo provides information about the paginated collection.
Example
{
  "edges": [ConnectionsEdge],
  "pageInfo": PageInfo
}

ConnectionsEdge

Description

The connections returned for a given user.

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.
Example
{
  "cursor": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw",
  "node": Connection
}

ConnectionsInput

Description

The input required to query the connections that exist for a given user.

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.
Example
{
  "first": 5,
  "after": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw",
  "filter": ConnectionFilter
}

CurrencyCode

Values
Enum Value Description

USD

The currency code for USD.
Example
"USD"

Date

Description

A date in the format YYYY-MM-DD.

Example
"2007-12-03"

DateInput

Fields
Input Field Description
day - Int!
month - Int!
year - Int!
Example
{"day": "14", "month": "6", "year": "1986"}

DeleteMeOutput

Fields
Field Name Description
user - User! Returned user object
Example
{"user": User}

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.

Example
"00000000-0000-0000-0000-000000000000"

ImportConnectionsInput

Fields
Input Field Description
tokens - [String!]! The Plaid access tokens or Processor tokens.
Example
{"tokens": ["xyz789"]}

ImportConnectionsOutput

Fields
Field Name Description
connections - [Connection!]! The created connection objects.
Example
{"connections": [Connection]}

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
Example
{"id": "00000000-0000-0000-0000-000000000000"}

ImportUserOutput

Fields
Field Name Description
user - User! The enablement user object created as a result of the import.
Example
{"user": User}

Institution

Fields
Field Name Description
name - String! The name of the financial institution.
logoUrl - String! The logo URL of the financial institution.
Example
{"name": "bloom", "logoUrl": "https://example.com/logo.png"}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

Money

Description

The money object.

Fields
Field Name Description
amount - Int! The amount of money.
currency - CurrencyCode! The currency of the money.
Example
{"amount": 123, "currency": "USD"}

Name

Fields
Field Name Description
first - String! A user's legal first name.
middle - String A user's legal middle name or initial. (optional)
last - String! A user's legal last name.
Example
{"first": "Buzz", "middle": "Z", "last": "Inga"}

NameInput

Fields
Input Field Description
first - String! The users legal first name
middle - String The users legal middle name (optional)
last - String! The users legal last name
Example
{"first": "Buzz", "middle": "Z", "last": "Inga"}

Node

Fields
Field Name Description
id - ID! The unique identifier for the node.
Possible Types
Node Types

Connection

Transaction

User

Example
{
  "id": "00000000-0000-0000-0000-000000000000"
}

NotificationType

Values
Enum Value Description

EMAIL

May be used in the future, but not at this time for enablement services customers.

SMS

May be used in the future, but not at this time for enablement services customers.

NONE

This should be the value used as we do not send notifications at this time to users tied to an enablement services customer.
Example
"EMAIL"

OpenRentTradelineOutput

Fields
Field Name Description
tradeline - Tradeline The tradeline that was opened.
Example
{"tradeline": Tradeline}

OpenTelcoTradelineOutput

Fields
Field Name Description
tradeline - Tradeline The tradeline that was opened.
Example
{"tradeline": Tradeline}

OpenUtilityTradelineOutput

Fields
Field Name Description
tradeline - Tradeline The tradeline that was opened.
Example
{"tradeline": Tradeline}

PageInfo

Description

PageInfo provides information about the paginated collection.

Fields
Field Name Description
hasNextPage - Boolean! Indicates if there is a next page.
endCursor - String The cursor for the end of the current page.
Example
{
  "hasNextPage": false,
  "endCursor": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw"
}

PaymentFrequency

Description

How often the tradeline is paid.

Values
Enum Value Description

UNKNOWN

The payment frequency is unknown.

DAILY

Payments are made daily.

WEEKLY

Payments are made weekly.

BIWEEKLY

Payments are made biweekly.

SEMIMONTHLY

Payments are made semimonthly.

MONTHLY

Payments are made monthly.

BIMONTHLY

Payments are made every two months.

QUARTERLY

Payments are made quarterly.

SEMI_ANNUAL

Payments are made semi-annually.

ANNUAL

Payments are made annually.
Example
"UNKNOWN"

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.
name - NameInput! The name of the user.
address - AddressInput! The address of the user.
dateOfBirth - DateInput! The date of birth of the user.
nationalId - String The national ID of the user (optional).
visitorID - String The visitor ID for tracking purposes (optional).
Example
{
  "organizationSlug": "bloom",
  "email": "[email protected]",
  "phoneNumber": "+12345678901",
  "name": NameInput,
  "address": AddressInput,
  "dateOfBirth": DateInput,
  "nationalId": "12345",
  "visitorID": "12345"
}

RegisterOrganizationUserOutput

Fields
Field Name Description
user - User The user object created as a result of the registration.
Example
{"user": User}

RentTradelineDetails

Description

The details associated with a rent tradeline.

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.
Example
{
  "serviceAddressString": "abc123",
  "serviceAddressType": "PRIMARY",
  "leaseStartDate": "2007-12-03",
  "isPrimaryAddress": true,
  "hasOtherMortgageOrRent": true
}

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.
Example
{
  "serviceAddressString": "abc123",
  "serviceAddressType": "PRIMARY",
  "leaseStartDate": "2007-12-03",
  "isPrimaryAddress": true,
  "hasOtherMortgageOrRent": true
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

TelcoTradelineDetails

Description

The details associated with a telco tradeline.

Fields
Field Name Description
servicePhone - String! Service phone number of the tradeline.
Example
{"servicePhone": "abc123"}

TelcoTradelineInput

Fields
Input Field Description
servicePhone - String! The service phone number of the tradeline.
Example
{"servicePhone": "abc123"}

Time

Description

An RFC3339 formatted timestamp.

Example
"10:15:30Z"

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:

  • The tradeline has a payment frequency of MONTHLY or less frequent. (NOT DAILY/WEEKLY/BI-WEEKLY)
  • The tradeline is an eligible category. (RENT, UTILITY, TELCO, SUBSCRIPTION)
  • The tradeline has a transaction within the last 90 days, and at least 3 transactions total.
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.
Arguments
Example
{
  "id": "00000000-0000-0000-0000-000000000000",
  "user": User,
  "merchant": "Pollen Water Co",
  "category": "RENT",
  "status": "UNOPENED",
  "isEligible": true,
  "paymentFrequency": "MONTHLY",
  "lastTransactionDate": "2007-12-03",
  "transactionCount": 987,
  "details": RentTradelineDetails,
  "createdAt": "10:15:30Z",
  "updatedAt": "10:15:30Z",
  "transactions": TransactionsConnection
}

TradelineCategory

Values
Enum Value Description

RENT

A tradeline associated with rent payments.

UTILITY

A tradeline associated with utility payments.

TELCO

A tradeline associated with telco payments.

SUBSCRIPTION

A tradeline associated with subscription payments.

OTHER

A tradeline associated with other payments.
Example
"RENT"

TradelineDetails

Description

The details associated with a tradeline. See individual types for more details.

Example
RentTradelineDetails

TradelineStatus

Values
Enum Value Description

UNOPENED

The tradeline has never been opened.

OPEN

The tradeline is currently open.

CLOSED

The tradeline has been closed.
Example
"UNOPENED"

TradelinesConnection

Fields
Field Name Description
edges - [TradelinesEdge!]! The edges of the tradelines connection.
pageInfo - PageInfo! The pagination information for the tradelines connection.
Example
{
  "edges": [TradelinesEdge],
  "pageInfo": PageInfo
}

TradelinesEdge

Description

The tradelines returned for a given connection.

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.
Example
{
  "cursor": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw",
  "node": Tradeline
}

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.
Example
{"first": 5, "after": "3", "status": "UNOPENED", "isEligible": true}

Transaction

Description

The transaction object.

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.
Example
{
  "id": "00000000-0000-0000-0000-000000000000",
  "date": "2007-12-03",
  "value": Money,
  "tradeline": Tradeline
}

TransactionsConnection

Fields
Field Name Description
edges - [TransactionsEdge] The edges of the transactions connection.
pageInfo - PageInfo! The pagination information for the transactions connection.
Example
{
  "edges": [TransactionsEdge],
  "pageInfo": PageInfo
}

TransactionsEdge

Description

The transactions returned for a given connection.

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.
Example
{
  "cursor": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw",
  "node": Transaction
}

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.
Example
{"first": 5, "after": "3"}

User

Description

The user type

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.
Arguments
tradelines - TradelinesConnection! The tradelines associated with the connected financial institution(s) this user has connected.
Arguments
Example
{
  "id": "00000000-0000-0000-0000-000000000000",
  "email": "[email protected]",
  "phoneNumber": "+12345678901",
  "name": {"first": "Buzz", "last": "Inga"},
  "address": {
    "line1": "123 Main St",
    "city": "Athens",
    "state": "FL",
    "country": "USA",
    "zipcode": "37745",
    "type": "PRIMARY"
  },
  "status": "VERIFIED",
  "notificationPreferences": "EMAIL",
  "createdAt": "2025-01-01T00:00:00Z",
  "updatedAt": "2025-01-02T00:00:00Z",
  "syncedAt": "10:15:30Z",
  "closedAt": "10:15:30Z",
  "connections": ConnectionsConnection,
  "tradelines": TradelinesConnection
}

UserStatus

Values
Enum Value Description

PENDING

Pending is to be used prior to verifying the user - whether that be through OTP or other means.

VERIFIED

Use this status once the user has been verified.
Example
"PENDING"

UtilityTradelineDetails

Description

The details associated with a utility tradeline.

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.
Example
{
  "serviceAddressString": "abc123",
  "serviceAddressType": "PRIMARY",
  "isPrimaryAddress": false,
  "utilityTypes": ["WATER"]
}

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.
Example
{
  "serviceAddressString": "abc123",
  "serviceAddressType": "PRIMARY",
  "isPrimaryAddress": false,
  "utilityTypes": ["WATER"]
}

UtilityType

Values
Enum Value Description

WATER

A utility type for water services.

ELECTRIC

A utility type for electric services.

GAS

A utility type for gas services.

ADDITIONAL

An additional utility type.
Example
"WATER"