‎ ‎ ‎ 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.

🔒 Authorization: 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 {
    email
    phoneNumber
    name {
      first
      middle
      last
    }
    address {
      line1
      line2
      city
      state
      country
      zipcode
      type
    }
    status
    notificationPreferences
    legalAgreementVersions {
      name
      version
    }
    createdAt
    updatedAt
    syncedAt
    closedAt
    connections {
      edges {
        ...ConnectionsEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    tradelines {
      edges {
        ...TradelinesEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Response
{
  "data": {
    "me": {
      "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",
      "legalAgreementVersions": [{"name": "Terms of Use", "version": 1}],
      "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.

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

Response

Returns a Tradeline!

Example

Query
query Tradeline {
  tradeline {
    merchant
    category
    isOpen
    isEligible
    attestation {
      agreements {
        ...AttestationAgreementsFragment
      }
    }
    paymentFrequency
    serviceAddress
    servicePhone
    leaseStartDate
    utilityTypes
    serviceAddressType
    createdAt
    updatedAt
    transactions {
      edges {
        ...TransactionsEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Response
{
  "data": {
    "tradeline": {
      "merchant": "Pollen Water Co",
      "category": "RENT",
      "isOpen": false,
      "isEligible": true,
      "attestation": Attestation,
      "paymentFrequency": "MONTHLY",
      "serviceAddress": "123 Main St Athens FL 37745",
      "servicePhone": "+12345678901",
      "leaseStartDate": "2025-01-01",
      "utilityTypes": ["WATER"],
      "serviceAddressType": "PRIMARY",
      "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": "abc123",
  "email": "abc123"
}
Response
{"data": {"userExistsWithEmail": false}}

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.

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

Response

Returns a CloseTradelineOutput!

Example

Query
mutation CloseTradeline {
  closeTradeline {
    tradeline {
      merchant
      category
      isOpen
      isEligible
      attestation {
        ...AttestationFragment
      }
      paymentFrequency
      serviceAddress
      servicePhone
      leaseStartDate
      utilityTypes
      serviceAddressType
      createdAt
      updatedAt
      transactions {
        ...TransactionsConnectionFragment
      }
    }
  }
}
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.

🔒 Authorization: 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 {
      email
      phoneNumber
      name {
        ...NameFragment
      }
      address {
        ...AddressFragment
      }
      status
      notificationPreferences
      legalAgreementVersions {
        ...LegalAgreementVersionsFragment
      }
      createdAt
      updatedAt
      syncedAt
      closedAt
      connections {
        ...ConnectionsConnectionFragment
      }
      tradelines {
        ...TradelinesConnectionFragment
      }
    }
  }
}
Response
{"data": {"deleteMe": {"user": User}}}

importConnection

Description

The importConnection mutation allows you to import a previously established aggregator connection, enabling our system to ingest and categorize transactions associated with that connection. This process facilitates transaction management and categorization for streamlined data handling within your application.

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

Response

Returns an ImportConnectionOutput!

Arguments
Name Description
token - String! Plaid access token

Example

Query
mutation ImportConnection($token: String!) {
  importConnection(token: $token) {
    connectionId
    provider
  }
}
Variables
{"token": "xyz789"}
Response
{
  "data": {
    "importConnection": {
      "connectionId": "00000000-0000-0000-0000-000000000000",
      "provider": "plaid"
    }
  }
}

importUser

Description

The importUser mutation is used to import an existing consumer into the Bloom Enablement Services platform.

🔒 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 {
      email
      phoneNumber
      name {
        ...NameFragment
      }
      address {
        ...AddressFragment
      }
      status
      notificationPreferences
      legalAgreementVersions {
        ...LegalAgreementVersionsFragment
      }
      createdAt
      updatedAt
      syncedAt
      closedAt
      connections {
        ...ConnectionsConnectionFragment
      }
      tradelines {
        ...TradelinesConnectionFragment
      }
    }
  }
}
Variables
{"input": ImportUserInput}
Response
{"data": {"importUser": {"user": User}}}

openTradeline

Description

The openTradeline mutation is used to confirm that a user has opted to have a recurring bill reported to the credit bureau(s). Upon successful execution, it returns the attestation agreements associated with the tradeline that has been opened. This process ensures the tradeline is correctly configured for credit reporting.

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

Response

Returns an OpenTradelineOutput!

Arguments
Name Description
input - OpenTradelineInput! The input object

Example

Query
mutation OpenTradeline($input: OpenTradelineInput!) {
  openTradeline(input: $input) {
    attestation {
      agreements {
        ...AttestationAgreementsFragment
      }
    }
  }
}
Variables
{"input": OpenTradelineInput}
Response
{"data": {"openTradeline": {"attestation": Attestation}}}

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 {
      email
      phoneNumber
      name {
        ...NameFragment
      }
      address {
        ...AddressFragment
      }
      status
      notificationPreferences
      legalAgreementVersions {
        ...LegalAgreementVersionsFragment
      }
      createdAt
      updatedAt
      syncedAt
      closedAt
      connections {
        ...ConnectionsConnectionFragment
      }
      tradelines {
        ...TradelinesConnectionFragment
      }
    }
    token
    expiry
  }
}
Variables
{"input": RegisterOrganizationUserInput}
Response
{
  "data": {
    "registerOrganizationUser": {
      "user": User,
      "token": "12345abcde",
      "expiry": "10:15:30Z"
    }
  }
}

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.
country - String! The country of the address.
zipcode - String! The postal or ZIP code of the address.
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.
country - String! The country of the address.
zipcode - String! The postal or ZIP code of the address.
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.

BILLING

A billing address of the user.

SHIPPING

A shipping address of the user.
Example
"PRIMARY"

Attestation

Fields
Field Name Description
agreements - AttestationAgreements! The agreements associated with the attestation.
Example
{"agreements": AttestationAgreements}

AttestationAgreements

Fields
Field Name Description
rent - RentAgreements The rent agreements.
utility - UtilityAgreements The utility agreements.
Example
{
  "rent": RentAgreements,
  "utility": UtilityAgreements
}

AttestationAgreementsInput

Fields
Input Field Description
rent - RentAgreementInput The rent agreement input.
utility - UtilityAgreementInput The utility agreement input.
Example
{
  "rent": RentAgreementInput,
  "utility": UtilityAgreementInput
}

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
status - ConnectionStatus! The current status of the connection.
institution - Institution! The financial institution associated with the connection.
Example
{"status": "ACTIVE", "institution": Institution}

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 and is no longer active.
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}

ImportConnectionOutput

Fields
Field Name Description
connectionId - String! Unique connection identifier.
provider - String! Connection provider (PLAID, MX, etc)
Example
{"connectionId": "00000000-0000-0000-0000-000000000000", "provider": "plaid"}

ImportUserInput

Fields
Input Field Description
id - String! The ID of the consumer to import.
Example
{"id": "xyz789"}

ImportUserOutput

Fields
Field Name Description
user - User! The 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
123

LegalAgreementVersions

Description

The legal agreement name and version the user has agreed to.

Fields
Field Name Description
name - String!
version - Int!
Example
{"name": "Terms of Use", "version": 1}

LegalAgreementVersionsInput

Fields
Input Field Description
termsOfUse - Int! Terms of use version
Example
{"termsOfUse": 123}

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!
middle - String
last - String!
Example
{"first": "Buzz", "middle": "Z", "last": "Inga"}

Node

Possible Types
Node Types

Connection

Tradeline

Transaction

User

Example
{}

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"

OpenTradelineInput

Fields
Input Field Description
serviceAddress - String The service address of the tradeline.
servicePhone - String The service phone number of the tradeline.
serviceAddressType - AddressType The type of service address.
leaseStartDate - Date The lease start date of the tradeline.
utilityTypes - [UtilityType!] The utility types associated with the tradeline.
agreements - AttestationAgreementsInput! The agreements for the attestation.
Example
{
  "serviceAddress": "xyz789",
  "servicePhone": "abc123",
  "serviceAddressType": "PRIMARY",
  "leaseStartDate": "2007-12-03",
  "utilityTypes": ["WATER"],
  "agreements": AttestationAgreementsInput
}

OpenTradelineOutput

Fields
Field Name Description
attestation - Attestation! The attestation details of the tradeline.
Example
{"attestation": Attestation}

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": true,
  "endCursor": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw"
}

PaymentFrequency

Description

How often the tradeline is paid.

Values
Enum Value Description

UNKNOWN

The payment frequency is unknown.

MONTHLY

Payments are made monthly.

BIMONTHLY

Payments are made every two months.

QUARTERLY

Payments are made quarterly.
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).
notificationPreferences - NotificationType The notification preferences of the user.
legalAgreementVersions - LegalAgreementVersionsInput The legal agreement versions the user has accepted.
Example
{
  "organizationSlug": "bloom",
  "email": "[email protected]",
  "phoneNumber": "+12345678901",
  "name": NameInput,
  "address": AddressInput,
  "dateOfBirth": DateInput,
  "nationalId": "12345",
  "visitorID": "12345",
  "notificationPreferences": "EMAIL",
  "legalAgreementVersions": LegalAgreementVersionsInput
}

RegisterOrganizationUserOutput

Fields
Field Name Description
user - User The user object created as a result of the registration.
token - String A token for the registered user.
expiry - Time The expiry time of the token.
Example
{
  "user": User,
  "token": "12345abcde",
  "expiry": "10:15:30Z"
}

RentAgreementInput

Fields
Input Field Description
isPrimaryAddress - Boolean! Indicates if this is the primary address.
hasOtherMortgageOrRent - Boolean! Indicates if there are other mortgage or rent obligations.
Example
{"isPrimaryAddress": false, "hasOtherMortgageOrRent": false}

RentAgreements

Fields
Field Name Description
isPrimaryAddress - Boolean! Indicates if this is the primary address.
hasOtherMortgageOrRent - Boolean! Indicates if there are other mortgage or rent obligations.
Example
{"isPrimaryAddress": true, "hasOtherMortgageOrRent": false}

Scope

Values
Enum Value Description

ORGANIZATION

Scope for organization-level access.

USER

Scope for user-level access.

ANONYMOUS

Scope for anonymous access.
Example
"ORGANIZATION"

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"

Time

Description

An RFC3339 formatted timestamp.

Example
"10:15:30Z"

Tradeline

Fields
Field Name Description
merchant - String! The merchant associated with the tradeline.
category - TradelineCategory! The category of the tradeline.
isOpen - Boolean! Indicates if the tradeline is open.
isEligible - Boolean! Indicates if the tradeline is eligible for reporting.
attestation - Attestation The attestation details of the tradeline.
paymentFrequency - PaymentFrequency! The payment frequency of the tradeline.
serviceAddress - String The service address of the tradeline.
servicePhone - String The service phone number of the tradeline.
leaseStartDate - String The lease start date of the tradeline.
utilityTypes - [UtilityType!] The utility types associated with the tradeline.
serviceAddressType - String The type of service address.
createdAt - Time! The time the tradeline was created.
updatedAt - Time! The last time the tradeline was updated.
transactions - TransactionsConnection! The transactions associated with the tradeline.
Arguments
Example
{
  "merchant": "Pollen Water Co",
  "category": "RENT",
  "isOpen": true,
  "isEligible": false,
  "attestation": Attestation,
  "paymentFrequency": "MONTHLY",
  "serviceAddress": "123 Main St Athens FL 37745",
  "servicePhone": "+12345678901",
  "leaseStartDate": "2025-01-01",
  "utilityTypes": ["WATER"],
  "serviceAddressType": "PRIMARY",
  "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 telecommunication services.

OTHER

A tradeline associated with other types of payments.

SUBSCRIPTION

A tradeline associated with subscription services.
Example
"RENT"

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).
isOpen - Boolean Whether or not the tradeline has been attested to.
isEligible - Boolean Whether or not the tradeline is eligible for reporting to the credit bureaus.
Example
{"first": 5, "after": "3", "isOpen": false, "isEligible": true}

Transaction

Description

The transaction object.

Fields
Field Name Description
date - Date! The date of the transaction.
value - Money! The value of the transaction.
Example
{
  "date": "2007-12-03",
  "value": Money
}

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
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.
legalAgreementVersions - [LegalAgreementVersions]! The Legal agreement versions the user has accepted.
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
{
  "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",
  "legalAgreementVersions": [{"name": "Terms of Use", "version": 1}],
  "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"

UtilityAgreementInput

Fields
Input Field Description
isPrimaryAddress - Boolean! Indicates if this is the primary address.
Example
{"isPrimaryAddress": false}

UtilityAgreements

Fields
Field Name Description
isPrimaryAddress - Boolean! Indicates if this is the primary address.
Example
{"isPrimaryAddress": false}

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"