Skip to main content

Quick Start

The basic patterns align with the Maven Central package README — create a client, authenticate, then call APIs.

Prerequisites

Complete Installation first — add the Maven dependency, set CANDESCENT_* credentials, and confirm the SDK loads.

Create a client​

import com.candescent.di.CandescentClient;
import com.candescent.di.ClientConfig;
import com.candescent.di.Environment;
import com.candescent.di.generated.model.AccountsResponse;

public class QuickStart {
public static void main(String[] args) throws Exception {
try (CandescentClient client = new CandescentClient(new ClientConfig()
.setClientId(System.getenv("CANDESCENT_CLIENT_ID"))
.setClientSecret(System.getenv("CANDESCENT_CLIENT_SECRET"))
.setInstitutionId(System.getenv("CANDESCENT_INSTITUTION_ID"))
.setEnvironment(Environment.STAGE))) {

AccountsResponse accounts = client.accounts()
.callList()
.hostUserId("user-12345")
.execute();
int count = accounts.getAccounts() != null ? accounts.getAccounts().size() : 0;
System.out.println("Found " + count + " accounts");
}
}
}

CandescentClient implements AutoCloseable — use try-with-resources or call close() when you are done to revoke cached OAuth tokens and release resources.

Authentication​

Obtain your Client ID, Client Secret, and Institution ID from the Developer Console quickstart guide.

import com.candescent.di.CandescentClient;
import com.candescent.di.ClientConfig;
import com.candescent.di.Environment;

CandescentClient client = new CandescentClient(new ClientConfig()
.setClientId("your-client-id")
.setClientSecret("your-client-secret")
.setInstitutionId("your-institution-id")
.setEnvironment(Environment.PRODUCTION));

The SDK obtains and caches OAuth tokens automatically, refreshes them before expiry, and injects the Authorization header on every request.

Option 2 — Environment variables​

Bash
export CANDESCENT_CLIENT_ID=your-client-id
export CANDESCENT_CLIENT_SECRET=your-client-secret
export CANDESCENT_INSTITUTION_ID=your-institution-id
export CANDESCENT_ENVIRONMENT=production # or stage (default), sandbox
import com.candescent.di.CandescentClient;

CandescentClient client = CandescentClient.fromEnv();

See Installation for the full environment variable reference.

Option 3 — Static bearer token​

import com.candescent.di.CandescentClient;
import com.candescent.di.ClientConfig;

CandescentClient client = new CandescentClient(new ClientConfig()
.setBearerToken("your-pre-obtained-jwt")
.setInstitutionId("your-institution-id"));

Provide either CANDESCENT_BEARER_TOKEN or CANDESCENT_CLIENT_ID + CANDESCENT_CLIENT_SECRET.

Usage​

The client is organized by API service area. Each accessor on CandescentClient maps to one generated API class.

Accounts​

import com.candescent.di.generated.model.AccountsResponse;
import com.candescent.di.generated.model.Account;
import com.candescent.di.generated.model.TransactionsResponse;

// List accounts for a user
AccountsResponse accounts = client.accounts()
.callList()
.hostUserId("user-12345")
.execute();

// Get a specific account
Account account = client.accounts()
.callGet()
.accountId("acc-abc123")
.execute();

// List transactions for an account
TransactionsResponse txns = client.transactions()
.callListTransactions()
.accountId("acc-abc123")
.hostUserId("user-12345")
.execute();
tip

Pass either hostUserId or loginId on each request — not both.

Business banking​

import com.candescent.di.generated.model.BusinessEntitlementsResponse;
import com.candescent.di.generated.model.BusinessDetailsResponse;

// Get business entitlements
BusinessEntitlementsResponse entitlements = client.entitlements()
.callGetBusinessEntitlements()
.businessId("biz-456")
.execute();

// Look up business details by ID
BusinessDetailsResponse details = client.profile()
.callGetBusinessDetails()
.searchType("BUSINESS_ID")
.searchValue("biz-456")
.includeTins(true)
.includeUsers(true)
.execute();

Standalone operations (serverless / Lambda)​

For short-lived environments (such as AWS Lambda) where you do not want to create and close a client on every invocation, use per-operation helpers from com.candescent.di.operations — they read CANDESCENT_* environment variables and handle client setup internally.

See Framework Integration for Lambda patterns. For error handling and pagination, see SDK Reference.

Next steps​

  1. SDK Reference — service areas, standalone operations, retries, and versioning
  2. Examples — runnable examples for every API area
  3. Framework Integration — Spring Boot and Lambda patterns